WordPress版本已更新至5.9,此方法仍有效。如何你是windows服务器,那么使用IIS下的WP会有中文URL显示为404的现象,下面根据网络中提供的方法对自己运行的WP进行修改。
在撰写这篇博客的时候,我所使用的WordPress版本为:5.8.2zh-CN。
当我们使用WordPress撰写中文文章的时候,如果说在固定链接中选择加入一个%postname%项,生成的url就会因为含有中文而无法被支持,网站显示404。
解决方法很简单:
进入wp-includes目录,打开该目录下的class-wp.php文件。(备份先!)
找到 $pathinfo = isset( $_SERVER[‘PATH_INFO’] ) ? $_SERVER[‘PATH_INFO’] : ”; (第167行)其实可以Ctrl+F查单词SERVER
将第二个$_SERVER[‘PATH_INFO’]替换为mb_convert_encoding($_SERVER[‘PATH_INFO’], ‘UTF-8’, ‘GBK’)(注意分号)
再找到 list( $req_uri ) = explode( ‘?’, $_SERVER[‘REQUEST_URI’] );(第171行) 将$_SERVER[‘REQUEST_URI’]替换为mb_convert_encoding($_SERVER[‘REQUEST_URI’], ‘UTF-8’, ‘GBK’)
保存,WordPress URL里就可以支持中文字符串了!
随着版本变化,情况可能又会改变,我更改后的截图放在这里供参考。
(修改后的代码)
$pathinfo = isset( $_SERVER['PATH_INFO'] ) ? mb_convert_encoding($_SERVER['PATH_INFO'], 'UTF-8', 'GBK') : '';
list( $pathinfo ) = explode( '?', $pathinfo );
$pathinfo = str_replace( '%', '%25', $pathinfo );
list( $req_uri ) = explode( '?', mb_convert_encoding($_SERVER['REQUEST_URI'], 'UTF-8', 'GBK') );



评论0