当我们想要使用 .htaccess 文件阻止机器人、垃圾邮件引荐来源网址时,一些网站使用以下代码语法:
Order allow,deny
Allow from all
Deny from env=spambot
但是有些网站告诉我们需要为不同的 Apache 版本使用不同的代码:
#For Apache 2.2
<IfModule !mod_authz_core.c>
<IfModule mod_authz_host.c>
Order allow,deny
Allow from all
Deny from env=spambot
</IfModule>
</IfModule>
# For Apache 2.4
<IfModule mod_authz_core.c>
<RequireAll>
Require all granted
Require not env spambot
</RequireAll>
</IfModule>
现在我想哪个锥体是正确的或两者都是正确的?
这个。
语法从 Apache 2.2 更改为 2.4。但是,保留旧的(Apache 2.2)语法(实际上,它已移至不同的模块:mod_access_compat)只是为了向后兼容- 所以它仍然“有效”。但它已被弃用,并且很可能在未来的版本中被删除。因此,Apache 2.4 上的代码应该使用该
Require ...
语法。