编辑含超链接的文章时触发404错误,请求排查原因
解决WordPress编辑带超链接文章更新跳404且未保存的问题
看起来你遇到的是WordPress后台POST请求被异常拦截的头疼问题,结合你调试发现的「请求指向index.php而非wp-admin/post.php」这个关键信息,咱们可以从这几个方向逐步排查解决:
一、优先排查服务器URL重写规则的异常
虽然你提到没有URL重写相关配置,但WordPress后台的正常POST请求应该直接命中wp-admin下的对应文件,大概率是服务器层面的规则搞了鬼:
- 检查Apache的
.htaccess文件(如果是Nginx就看server区块配置),确保wp-admin目录的请求没被错误重定向。默认的WordPress .htaccess规则应该是这样的,它会跳过真实存在的文件(比如post.php),不会把后台请求转去index.php:
如果你的配置里有额外的强制重定向规则,或者把所有请求都塞去index.php,就会触发这个问题。可以先临时替换成默认规则测试一下。<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> - 要是有自定义重写规则,先全部禁用,测试文章更新是否正常,再逐个恢复排查冲突点。
二、检查安全插件/防火墙的误拦截
很多安全类插件(比如Wordfence、iThemes Security)会对包含HTML标签(比如<a>)的后台请求做过滤,很可能误把编辑超链接的操作当成恶意请求,直接拦截并重定向到404或index.php:
- 先暂时禁用所有安全相关插件,再测试编辑带超链接的文章,看能不能正常保存。
- 如果禁用后恢复正常,就逐个启用插件,找到触发拦截的那个,然后在插件设置里把
wp-admin/post.php加入白名单,或者调整HTML内容的过滤规则。
三、排查WordPress核心文件的权限或损坏问题
- 确认
wp-admin/post.php文件是否存在,权限是否正确(一般文件设为644,目录设为755)。如果文件损坏或者权限不足,服务器会返回404并自动 fallback到index.php。 - 可以在WordPress后台「仪表盘-更新」里选择重新安装核心文件,这个操作不会影响你的内容、主题和插件,能修复可能存在的文件损坏问题。
四、排除浏览器或代理工具的干扰
- 有时候浏览器缓存的旧重定向规则会搞事情,试试清空浏览器缓存,或者用无痕模式测试。
- 如果你用了VPN、代理或者广告拦截类浏览器插件,先暂时关闭它们,看看是不是这些工具拦截了后台的POST请求。
你可以按照上面的步骤逐一排查,应该能很快定位到问题根源。如果某个步骤解决了问题,记得回来反馈哦!
内容的提问来源于stack exchange,提问作者thespacecamel
相关产品推荐
相关产品推荐

