在htaccess中组合多个FilesMatch规则

时间:2017-01-23 21:47:23

标签: apache .htaccess

我想完全拒绝某些IP访问我的网站。 此外,我还想拒绝某些其他IP访问某个文件。 问题是,第二条规则似乎覆盖了第一条规则。

<FilesMatch "">
order allow,deny
allow from all
deny from 1.1.1.1
</FilesMatch>

<FilesMatch "^file\.exe$">
order allow,deny
allow from all
deny from 2.2.2.2
</FilesMatch>

在这个剥离的示例中,1.1.1.1将可以访问file.exe,尽管它实际上已被第一条规则阻止。

预期结果:1.1.1.1无法访问任何内容(包括file.exe),2.2.2.2可以访问网站但不能访问file.exe。

我做错了什么?

1 个答案:

答案 0 :(得分:0)

deny from 1.1.1.1添加到第二个。如你所说,第二个块中的allow from all覆盖了file.exe的第一个块。同时删除第一个空文件匹配,它没有做任何事情。

order allow,deny
allow from all
deny from 1.1.1.1

<FilesMatch "^file\.exe$">
order allow,deny
allow from all
deny from 1.1.1.1
deny from 2.2.2.2
</FilesMatch>

或者对于更简单的方法,您可以尝试这样做:

order allow,deny
allow from all
deny from 1.1.1.1

<FilesMatch "^file\.exe$">
deny from 2.2.2.2
</FilesMatch>

请告诉我你是怎么过的。