如何在 .htaccess 文件中禁用 mod_security?

如何在 Apache 服务器上使用.htaccess文件禁用mod_security

我在我的个人域名上使用 WordPress,并发布了一篇文章,其中的内容有一些代码块,根据我的托管服务提供商所说,mod_security会产生错误,而且由于mod_security,我的 IP 已进入防火墙。

因此,我想使用.htaccess文件禁用mod_security

解决办法

这样做是可能的,但您的主机实施 mod_security 很可能是有原因的。请确保他们同意您为自己的网站禁用该功能。

也就是说,这应该可以做到;


  SecFilterEngine Off
  SecFilterScanPOST Off
评论(5)

更新一下 mod_security 2.7.0+ 的问题 - 他们关闭了通过 htaccess 缓解 modsec 的功能,除非使用 --enable-htaccess-config 标志编译。大多数主机都不使用这个编译选项,因为它的安全性太低。相反,httpd.conf 中的 vhosts 是控制 modsec 的首选。

即使使用 htaccess 缓解编译 modsec,可用的指令也较少。例如,"SecRuleEngine "就不能再使用了。以下是 htaccess 中默认允许使用的指令列表(请注意,主机可能会使用 AllowOverride 进一步限制该列表):

    - SecAction
    - SecRule

    - SecRuleRemoveByMsg
    - SecRuleRemoveByTag
    - SecRuleRemoveById

    - SecRuleUpdateActionById
    - SecRuleUpdateTargetById
    - SecRuleUpdateTargetByTag
    - SecRuleUpdateTargetByMsg

[更多信息请参见 modsec 官方维基][1]

针对 2.x 用户的额外说明:"IfModule "现在应查找 "mod_security2.c",而不是旧版本的 "mod_security.c

评论(0)

如果上述解决方案不起作用,可以试试这个:


  SecRuleEngine Off
  SecFilterInheritance Off
  SecFilterEngine Off
  SecFilterScanPOST Off
  SecRuleRemoveById 300015 3000016 3000017
评论(4)