解决WordPress4.5 /4.8伪静态后访问URL带中文的跳转到404

有关WordPress伪静态后访问URL带中文的跳转到404页面的问题,网上有很多的教程,基本上都是通过修改源文件达到中文字符串转码而实现的,由于不同版本的WordPress具体代码有所不同,所以很多教程也不一样。对于低版本的如何调整就不说了,网上有太多的教程大家可以搜索看看。


下面说一下最新版本的 WordPress 4.8 如何调整 伪静态后 URL带中文的跳转到404页面的问题。


情况如下,某用户使用我司提供的美国免费空间搭建了 wrodpress 博客,因为系统是WIN 2008的,所以用户自行上传了适用于 WIN2008版本的 伪静态配置文件 web.config , 从这一点可以看出用户是有一定水平的,但是开启伪静态的 博客 所有带有中文文章标题 的 内容访问全部显示 404 无法找到。


解决WordPress4.5 /4.8伪静态后访问URL带中文的跳转到404_第1张图片
可见用户并未调整程序中文字符串转码。


通过访问网站,查看源文件,发现用户的wordpress 版本 4.8的,简单查询了一下网上没有针对此版本的修改说明,看了一篇老版本的文章的调整说明 ,大致明白了如何调整,因此打开文件 wordpress\wp-includes目录下的class-wp.php文件,定位到以下默认显示192行的代码:


$req_uri = str_replace($pathinfo, '', $req_uri);


在它下面直接添加一段新的转化代码:


$req_uri = mb_convert_encoding($req_uri, 'utf-8', 'GBK');


如下图:


解决WordPress4.5 /4.8伪静态后访问URL带中文的跳转到404_第2张图片



保存后再次访问这篇文章的内容已经可以显示正常了。

你可能感兴趣的:(PHP)