更新帖子后WordPress显示404吗?

这个错误困扰了我很长时间。 在WordPress中,更新或保存新帖子或现有帖子后,有时,它将重定向到404页面,并且这种情况是随机发生的,不知道是什么原因引起的。

阅读后几个类似的职位- 这个这个 ,我发现这是由于mod_security滤波装在Apache上-如果一个帖子包含一定的预先定义的危险“二字组合”喜欢“高管”或“SQL注入命令”喜欢“插”,该帖子将被过滤,WordPress仅返回404页面。

这是我的解决方案:

1.禁用mod_security

许多建议通过将以下规则放在.htaccess禁用mod_security模块。

#...
<IfModule mod_security.c>
SecFilterEngine Off
SecFilterPost Off
</IfModule>

<IfModule mod_env.c>
SetEnv MODSEC_ENABLE Off
PassEnv MODSEC_ENABLE
</IfModule>
#...

不幸的是,上述解决方案不适用于我。 深入httpd.conf ,发现我的Apache正在使用最新的mod_secuirty2 ,然后再次尝试遵循以下规则:

#...
<IfModule mod_sec2.c>
SecFilterEngine Off
SecFilterPost Off
</IfModule>
#...

但是,也不起作用。 你可以试试运气🙂

2.绕过mod_security规则

谷歌搜索后,发现“ mod_security 2 ”不再支持.htaccess覆盖,您需要通过配置文件手动绕过那些规则。

要对其进行修复,请找到' /usr/local/apache/conf/modsec2/exclude.conf ,然后在文件开头附加以下内容。

/usr/local/apache/conf/modsec2/exclude.conf
<locationmatch "/wp-admin/post.php">
SecRuleRemoveById 300013
SecRuleRemoveById 300015
SecRuleRemoveById 300016
SecRuleRemoveById 300017
</locationmatch>

WordPress使用/wp-admin/post.php更新帖子,现在, mod_security将绕过规则– 300013、300015、300016、300017。重新启动Apache服务器。 再次更新以前的问题帖子,现在已成功更新,不再需要重定向到404页面,就可以了!

注意
您也可以将忽略规则放在/usr/local/apache/conf/modsec2/whitelist.conf

3.要过滤哪个规则ID?

等等,我们如何知道要过滤的规则? 您可以在modsec_audit.log找到此信息–所有过滤或拦截的URL都将记录在此文件中。

/usr/local/apache/logs/modsec_audit.log
# your problem-post URL here...

--2950df1e-H--
Message: Access denied with code 500 (phase 2). Pattern match "((select|grant|delete|insert|drop|alter|replace|truncate|update|create|rename|describe)[[:space:]]+[A-Z|a-z|0-9|\
\*| |\\,]+[[:space:]]+(from|into|table|database|index|view)[[:space:]]+
[A-Z|a-z|0-9|\\*| |\\,]|UNION SELECT.*\\'.*\\'.*,[0-9].*INTO.*FROM)" at REQUEST_BODY. 

[file "/usr/local/apache/conf/modsec2.user.conf"] [line "345"] [id "300013"] [rev "1"] 

[msg "Generic SQL injection protection"] [severity "CRITICAL"]
Action: Intercepted (phase 2)

#...

按URL或IP过滤,以标识更新帖子时触发哪些规则。 在上述情况下,帖子的URL 符合规则“ 300013 ”,并且您需要绕过此规则ID才能更新帖子。

注意
检查您的http.confmod_security日志可能已将错误消息记录到其他地方,请向托管服务提供商咨询以获取详细信息。

参考文献

  1. 使用事务变量而不是SecRuleRemoveById
  2. 编辑更新帖子后出现404错误
  3. 点击更新页面会显示404
  4. 发布或保存帖子时出现WordPress错误404
  5. WordPress Mod安全性2
  6. WordPress上的怪异500内部服务器错误已解决

翻译自: https://mkyong.com/blog/wordpress-display-404-after-updated-post/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值