美文网首页简友广场计算机技术交流(IT)
关于使WordPress支持中文url的方法

关于使WordPress支持中文url的方法

作者: 有志气的玻璃人 | 来源:发表于2020-03-07 16:26 被阅读0次

    在撰写这篇博客的时候,我所使用的WordPress版本为:5.3.2zh-CN。
    当我们使用WordPress撰写中文文章的时候,如果说在固定链接中选择加入一个%postname%项,生成的url就会因为含有中文而无法被支持,网站显示404。
    查阅相关文章,网上的解决方法都是同出一源且支持的是4.8版本的WordPress,对现在的版本来说,情况已有所改变。因为被转载的次数过多,且大多数都并非规范转载,所以说原作者已不可考。这里的引用部分引自站长头条此站方法已无效),由此得知原作者或为江程训(其实这篇文章我在后者的博客并没有翻到但是毕竟我的另一个网站用了巨佬的主题嘛哈哈)。整理后的原因及解决方法如下:

    之前在配置WordPress的时候做了个固定链接(%postname%),但在这之后我在我无意间点到文章的中文TAG的链接(例如http://yoursite.com/p/tag/这是中文的)直接给我弹了个404 Not Found,这我很郁闷啊,不能正常访问会影响到网站的用户体验的,不过经过多方查找资料才发现问题原因。wordpress 由于使用的是UTF8字符集.但是URL访问提交过来的URL中文字符是GBK 所以根据这个GBK的字符串查找文章标题,所以说肯定是找不到。。。 也就是说要对这个GBK字符串转换成UTF8
    问题原理引自站长头条 此站方法已无效

    解决方法很简单:
    1.进入wp-includes目录,打开该目录下的class-wp.php文件。(备份先!)
    2.找到 $pathinfo = isset( $_SERVER['PATH_INFO'] ) ? $_SERVER['PATH_INFO'] : '';(第167行)其实可以Ctrl+F查单词SERVER
    3.将第二个$_SERVER['PATH_INFO']替换为mb_convert_encoding($_SERVER['PATH_INFO'], 'UTF-8', 'GBK')(注意分号)
    4.再找到 list( $req_uri ) = explode( '?', $_SERVER['REQUEST_URI'] );(第171行)
    5.将$_SERVER['REQUEST_URI']替换为mb_convert_encoding($_SERVER['REQUEST_URI'], 'UTF-8', 'GBK')
    6.保存,WordPress URL里就可以支持中文字符串了!
    随着版本变化,情况可能又会改变,我更改后的截图放在这里供参考。

    wp中文url.png
    我是有志气的玻璃人,个人主页小蓝,如果我的文章对您有帮助的话,欢迎关注我!

    原文链接

    相关文章

      网友评论

        本文标题:关于使WordPress支持中文url的方法

        本文链接:https://www.haomeiwen.com/subject/nbscdhtx.html