解决Apache中WordPress中文路径404问题

遇到的问题:

在Apache服务器中部署WordPress,访问“index.php/测试”形式的页面遇到404错误。访问英文名称的页面正常,搜索功能正常。

解决方法:

在wp-config.php中添加一行:$_SERVER['PATH_INFO'] = '';

诊断出的原因:

使用Apache服务器时,PHP中的变量 _SERVER['REQUEST_URI'] 是没有解码的原始形式,如“index.php/%E6%B5%8B%E8%AF%95”,但 _SERVER['PATH_INFO'] 是解码后的形式“/测试”。由于WordPress通过前者减去后者来判断当前请求的文件,导致此处不能正确解析出index.php。

_SERVER['PATH_INFO']重设后,WordPress能够使用其他方法解析地址。在wp-config.php中添加该语句可防止更新时被重置。

该Bug九年前就已经在WordPress.org上被报告:https://core.trac.wordpress.org/ticket/10249

留言

向我们提问或者评论我们的文章。您的留言不会被直接显示在网站内。
请在浏览器中启用JavaScript来完成此表单。
Email