Bla*_*laM 8 regular-expressions apache-2.2
如果我只想对 apache2.conf 中的某些文件应用规则,我可以使用 <FilesMatch>。
例如:
<FilesMatch ".(gif|jpg|jpeg|png|mpg|avi)$">
deny from env=hotlink
</FilesMatch>
Run Code Online (Sandbox Code Playgroud)
但是有没有与 FilesMatch 相对的,即 FilesNotMatch?
我想要实现的是:
<FilesMatch ".(gif|jpg|jpeg|png|mpg|avi)$">
<FilesNotMatch "ban">
deny from env=hotlink
</FilesNotMatch>
</FilesMatch>
Run Code Online (Sandbox Code Playgroud)
(拒绝盗链服务器上的所有图像但横幅)
或者你有什么建议我如何修改我的正则表达式以不匹配包含“ban”的任何内容?
可悲的是,似乎没有办法否定 Apache 中的文件匹配。
但是,Apache 使用的正则表达式库是 PCRE(Perl Compatible Regular Expressions)。这意味着您拥有 Perl 正则表达式的全部功能,包括它们的否定回顾和超前断言。这些都是相当复杂和强大的功能。我不能确定这会起作用,尤其是在不知道图像的完整布局的情况下,但您可能可以使用以下内容:
<FilesMatch "(?<!ban).*\.(gif|jpg|jpeg|png|mpg|avi)$">
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12674 次 |
| 最近记录: |