wordpress 中文 404錯誤解決辦法
今天無意間發現,在擺弄自己的部落格網站時,發現標籤目錄分頁後,點選下一頁的時候會出現404錯誤。
待解決標籤過次頁問題後,已能正確顯示後。進一步測試網站時,又發現網站的搜尋結果頁,在過次頁問題上再次出現了404錯誤。
百度了一下這個問題,發現這算是wordpress的一個通病,很多人都遇到了這個問題,但是解決辦法基本上僅適用老版本的wordpress,新版本的已經不能按照教程適用了。
透過多次測試,wordpress4。9。7版本,修改中文標籤、標籤分頁、搜尋分頁404的解決辦法如下:
首先是修改標籤中文404的問題:
找到wordpress網站目錄WP-include/class-wp。php(
需要修改兩處
)
找到
$pathinfo = $_SERVER[‘PATH_INFO’;
替換為:
$pathinfo = mb_convert_encoding($_SERVER[‘PATH_INFO’], ‘UTF-8’, ‘GBK’);
找到
$req_uri = $_SERVER[‘REQUEST_URI’;
替換為:
$req_uri = mb_convert_encoding($_SERVER[‘REQUEST_URI’], ‘UTF-8’, ‘GBK’);
如果修改正確的話,現在,wordpress網站點選中文標籤已經可以正常顯示頁面,但是如果出現多個分頁,點選下一頁時,依舊會出現404錯誤。
接下來,我們來修改標籤中文分頁404的問題:
找到wordpress網站目錄wp-includes目錄中的link-template。php檔案
找到
$result = $base 。 $request 。 $query_string;
替換為
$result = $base 。 mb_convert_encoding($request, ‘UTF-8’, ‘GBK’) 。 $query_string;
如果修改正確的話,現在,wordpress網站點選中文標籤的過次頁也已經可以正常顯示頁面。
最後,
我們來修改搜尋分頁404的問題:
在當前主題的functions。php檔案第一行程式碼 <?php 下面新增以下程式碼:
function tongleer_search_url_rewrite() {
if ( is_search() && ! empty( $_GET[‘s’] ) ) {
wp_redirect( home_url( “/search/” ) 。 urlencode( get_query_var( ‘s’ ) ) );
exit();
}
}
add_action( ‘template_redirect’, ‘tongleer_search_url_rewrite’ );
自此,如果順利的話,wordpress4。9。7版本已經可以支援中文標籤、中文標籤分頁面、搜尋結果分頁面。
——百花谷部落格2018年7月19日原創,2018年7月20號轉發至頭條號!