之前在配置WordPress的时候做了个固定链接(%postname%),但在这之后我在我无意间点到文章的中文TAG的链接(例如/tag/这是中文的)直接给我弹了个404 Not Found,这我很郁闷啊,不能正常访问会影响到网站的用户体验的,不过经过多方查找资料才发现问题原因。
wordpress由于使用的是UTF8字符集.但是URL访问提交过来的URL中文字符是GBK 所以根据这个GBK的字符串查找文章标题,所以说肯定是找不到。。。 也就是说要对这个GBK字符串转换成UTF8。
让WordPress支持中文URL的方法:
经过多方查找,终于知道了不用插件只需简单的改两下代码就可以支持中文URL了。
wp-includes/class-wp.php 153 行:
$pathinfo = isset( $_SERVER['PATH_INFO'] ) ? $_SERVER['PATH_INFO'] : '';
修改为:
$pathinfo =isset($_SERVER['PATH_INFO'])? mb_convert_encoding($_SERVER['PATH_INFO'], 'utf-8', 'GBK') : '';
wp-includes/class-wp.php 157 行:
list( $req_uri ) = explode( '?', $_SERVER['REQUEST_URI'] );
修改为:
list( $req_uri ) = explode( '?', mb_convert_encoding($_SERVER['REQUEST_URI'], 'utf-8', 'GBK') );
通过以上修改,即可完美解决!
© 版权声明
文中内容均来源于公开资料,受限于信息的时效性和复杂性,可能存在误差或遗漏。我们已尽力确保内容的准确性,但对于因信息变更或错误导致的任何后果,本站不承担任何责任。如需引用本文内容,请注明出处并尊重原作者的版权。
THE END
暂无评论内容