覆盖子目录中的FilesMatch

时间:2013-04-30 12:23:15

标签: .htaccess mod-rewrite

我网站的根目录包括.htaccess中的FilesMatch,以确保我不会重写这些文件。

<FilesMatch "\.(htm|php|js|css|htc|png|gif|jpe?g|ico|xml|csv|txt|swf|flv|mp4|webm|ogv|mp3|ogg|oga|eot|woff|svg|ttf|pdf|gz)$">
  RewriteEngine Off
</FilesMatch>

我希望通过php文件发送所有文件以检查权限来保护一个子目录。那里的htaccess是

RewriteEngine On
RewriteRule ^(.*)$ /protect.php [L]

但是这会排除root中与filesmatch匹配的所有文件。当我尝试覆盖(相同的文件匹配句子,但使用RewriteEngine On文件仍然被忽略。

我可以覆盖子目录中的FilesMatch吗?

1 个答案:

答案 0 :(得分:0)

您可以这样做,但必须将完整的规则集包装在其中

<FilesMatch "\.(htm|php|js|css|htc|png|gif|jpe?g|ico|xml|csv|txt|swf|flv|mp4|webm|ogv|mp3|ogg|oga|eot|woff|svg|ttf|pdf|gz)$">
RewriteEngine On
RewriteRule ^(.*)$ /protect.php [L]
</FilesMatch>