遇到的问题:
在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
留言
有想法?请给我们留言!您的留言不会直接显示在网站内。