[wordpress] 中文網址錯誤或亂碼,404 not found

架完 wordpress,我們會試著設定每篇文章對應到的網址,若文章標題為中文,時常會發生找不到網頁或網址亂碼的錯誤。

這是由於 wordpress 的編碼問題,因此我們需要改寫部分程式碼。


當只要網址是中文會發生 404 not found 的狀況:

  1. 更改 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") );

  2. 完成,這樣就可以正常顯示中文網址了

 

如果你是不論中文或英文網址,都發生 404 not found, 或中文網址就會產生亂碼:

  1. 開啟 apache 的 rewrite module
    sudo a2enmod rewrit
    sudo service apache2 restart
  2. 至 wordpress 後台(Settings > Permalinks)複製以下程式碼
  3. 請至主機的 wordpress 網頁目錄創建 .htaccess 檔案,將剛剛複製的內容貼上至 .htaccess
  4. 將 .htaccess  開啟可寫權限,方便從 wordpress 後臺更改設定
    chmod .htaccess 666
  5.  這樣就完成了~應該就不會有網址對應不到文章的問題。

 

參考資料:

http://dev.brucelulu.com/topics/180

One thought on “[wordpress] 中文網址錯誤或亂碼,404 not found

Leave a Reply