WordPress配置固定链接(%postname%)后,许多用户会遇到一个常见而令人困扰的问题——中文TAG链接打开后直接显示404 Not Found。这会导致整站体验大打折扣,用户点击进来却无功而返,确实影响网站的整体访问效果。实际上,这个问题并不复杂,核心原因在于字符编码不一致:WordPress内部采用UTF-8编码,但URL访问时提交的中文字符却是GBK编码。系统拿着GBK字符串去匹配文章标题,自然无法找到对应内容。解决思路也很明确——将GBK字符串转成UTF-8,问题便迎刃而解。
让WordPress支持中文URL,无需安装任何插件,只需简单修改两行代码即可实现。

具体修改方法如下:
找到 wp-includes 目录下的 class-wp.php 文件,打开后定位到 parse_request 函数内部。
1. 找到这行:
$pathinfo = $_SERVER['PATH_INFO'];
修改为:
$pathinfo = mb_convert_encoding($_SERVER['PATH_INFO'], 'UTF-8', 'GBK');
2. 找到这行:
$req_uri = $_SERVER['REQUEST_URI'];
修改为:
$req_uri = mb_convert_encoding($_SERVER['REQUEST_URI'], 'UTF-8', 'GBK');
需要注意的是,WordPress 4.8 和 4.9.8 版本在此处的代码结构略有差异,但修改逻辑完全一致。下面附上修改后的代码截图,方便对照。

修改完成后,WordPress的URL就能正常识别中文字符串了,中文TAG、中文分类链接将不再报404错误,用户的访问体验也能恢复顺畅。
