之前在配置WordPress的时候做了个固定链接(%postname%),但在这之后我在我无意间点到文章的中文TAG的链接(例如http://yoursite.com/p/tag/这是中文的)直接给我弹了个404 Not Found,这我很郁闷啊,不能正常访问会影响到网站的用户体验的,不过经过多方查找资料才发现问题原因。wordpress 由于使用的是UTF8字符集.但是URL访问提交过来的URL中文字符是GBK 所以根据这个GBK的字符串查找文章标题,所以说肯定是找不到。。。 也就是说要对这个GBK字符串转换成UTF8 更多内容关注qq群(197783973)
经过多方查找,终于知道了不用插件只需简单的改两下代码就可以支持中文URL了。
以下是修改方法
修改wp-includes目录下的class-wp.php文件:
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');
以上两处修改都在函数parse_request内,wordpress4.8和wordpress4.9.8的会有点出入,我把我修改过后的代码的截图放上来
经过修改之后 WordPress URL里就可以支持中文字符串了
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有