我不是apache conf
文件专家,但我对它们相当熟悉。我在我的一个 wordpress 网站 ( https://ithemes.com/security/ )上安装的一个安全插件对文件进行编辑以.htaccess
强制执行自动 IP 禁令(例如,如果您在一个短时间)。这是它生成的块:(我为 IP 地址添加了 xxx)
<IfModule mod_authz_core.c>
<RequireAll>
Require all granted
Require not env DenyAccess
Require not ip xxx.xxx.xxx.xxx
</RequireAll>
</IfModule>
<IfModule !mod_authz_core.c>
Order allow,deny
Deny from env=DenyAccess
Deny from xxx.xxx.xxx.xxx
Allow from all
</IfModule>
现在,这会导致网站因 500 错误而崩溃。我在日志中得到的错误是
预期
</RequireAll>>
但看到</RequireAll>
(注意额外的尾随>
)。而且,你瞧,如果我添加一个额外的>
,该站点将再次运行。
这里有什么语法规则?为什么我需要额外>
的结束标签?为什么(流行且受人尊敬的)插件会生成无效的.htaccess
?由于这对我来说看起来很错误,我倾向于相信我有一些模糊的服务器设置或过时的 apache 或其他原因。任何见解将不胜感激。
使用 Apache/2.0.46