网站访问中文 URL 时遭遇 404

  • 设置了 WordPress 的固定链接为文章名 % postname%,然后标题还是中文的,访问时遭遇 404。
  • 分类名和标签名是中文的,访问时遭遇 404。
  • URL 链接中带有中文字符或符号等。

网站访问中文URL时遭遇404

生成的 url 就会因为含有中文而无法被支持,显示 404。

解决方法

进入站点目录下的 wp-includes 目录,编辑 class-wp.php 文件。

1
2
3
4
5
找到$pathinfo         = isset( $_SERVER['PATH_INFO'] ) ? $_SERVER['PATH_INFO'] : '';
可以直接搜索$_SERVER['PATH_INFO']
将这行的第二个$_SERVER['PATH_INFO']替换为mb_convert_encoding($_SERVER['PATH_INFO'], 'UTF-8', 'GBK')
再找到list( $req_uri ) = explode( '?', $_SERVER['REQUEST_URI'] );
$_SERVER['REQUEST_URI']替换为mb_convert_encoding($_SERVER['REQUEST_URI'], 'UTF-8', 'GBK')

执行完上面操作然后保存,这下 WordPress URL 里就可以支持中文字符了!