我不是apache conf
文件的专家,但我对它们相当熟悉。我在我的一个wordpress网站(https://ithemes.com/security/)上安装的安全插件会对.htaccess
文件进行编辑,以强制实施自动IP禁止(例如,如果您在登录尝试中失败次数太多)短时间内)。以下是它生成的块:( xxx由我添加的IP地址)
<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