天天看點

讓WordPress支援中文URL

之前在配置WordPress的時候做了個固定連結(%postname%),但在這之後我在我無意間點到文章的中文TAG的連結(例如

http://yoursite.com/p/tag/

這是中文的)直接給我彈了個404 Not Found,這我很郁悶啊,不能正常通路會影響到網站的使用者體驗的,不過經過多方查找資料才發現問題原因。wordpress 由于使用的是UTF8字元集.但是URL通路送出過來的URL中文字元是GBK 是以根據這個GBK的字元串查找文章标題,是以說肯定是找不到。。。 也就是說要對這個GBK字元串轉換成UTF8

讓WordPress支援中文URL

經過多方查找,終于知道了不用插件隻需簡單的改兩下代碼就可以支援中文URL了。

讓WordPress支援中文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

經過修改之後 WordPress URL裡就可以支援中文字元串了

繼續閱讀