架完 wordpress,我們會試著設定每篇文章對應到的網址,若文章標題為中文,時常會發生找不到網頁或網址亂碼的錯誤。
這是由於 wordpress 的編碼問題,因此我們需要改寫部分程式碼。
當只要網址是中文會發生 404 not found 的狀況:
-
更改 wordpress資料夾底下的 wp-includes/class-wp.php 內容 將原來的這兩行
$pathinfo = isset( $_SERVER['PATH_INFO'] ) ? $_SERVER['PATH_INFO'] : ''; list( $req_uri ) = explode( '?', $_SERVER['REQUEST_URI'] );
改為$pathinfo = isset( $_SERVER['PATH_INFO'] ) ? mb_convert_encoding($_SERVER['PATH_INFO'], "UTF-8", "Big5") : ''; list( $req_uri ) = explode( '?', mb_convert_encoding($_SERVER['REQUEST_URI'], "UTF-8", "Big5") );
-
完成,這樣就可以正常顯示中文網址了
如果你是不論中文或英文網址,都發生 404 not found, 或中文網址就會產生亂碼:
- 開啟 apache 的 rewrite module
sudo a2enmod rewrit
sudo service apache2 restart
- 至 wordpress 後台(Settings > Permalinks)複製以下程式碼
- 請至主機的 wordpress 網頁目錄創建
.htaccess
檔案,將剛剛複製的內容貼上至.htaccess
- 將 .htaccess 開啟可寫權限,方便從 wordpress 後臺更改設定
chmod .htaccess 666
- 這樣就完成了~應該就不會有網址對應不到文章的問題。
參考資料: