.htaccess否认所有,除了?

时间:2012-03-05 23:11:22

标签: apache .htaccess

我有这个htaccess规则来阻止所有.xml请求:

<Files ~ "\.xml$">
Order allow,deny
Deny from all
Satisfy all
</Files>

但是,我需要允许一个.xml文件。该规则应该如何重写?

此外,在该规则之上,我有一个例外:

RewriteRule ^(myxml\.xml)$ $1 [L]

但是仍然不允许该文件。

1 个答案:

答案 0 :(得分:1)

Apache Regexp Engine与PCRE兼容,那么为什么不使用带有负向lookbehind断言"(?<!\bmyxml)\.xml$"的正则表达式?

这说的是匹配以.xml结尾的内容,只要它不在myxml之前。这意味着该规则不会为myxml.xml触发,因此不会被拒绝。

根据Apache文档,BTW FilesMatch比Files~更受欢迎。不要问我为什么。