国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > CMS > Wordpress > 正文

wordpress中文標簽出現404錯誤的解決辦法

2024-09-07 00:51:58
字體:
來源:轉載
供稿:網友

最近剛把wordpress博客從linux服務器更換到windows服務器,無意間發現中文標簽點擊報404錯誤(后來百度只有iis環境才會有這個問題),找不到頁面,404錯誤對seo優化肯定是不又好的,所以趕緊想辦法處理,剛開始以為數據沒有轉移完全,又重新轉移了一次,但是故障依舊,沒有辦法,還是得需要解決啊,于是百度搜索“wordpress 中文標簽404”,很多完美解決方案就唰唰的出來了.

首先找了一個方法馬上通過FTP測試,發現神奇的中文標簽可以用了.

方法如下:

1.在網站的根目錄的wp-includes文件夾中找到“rewrite.php”這個文件。

2.備份一下“rewrite.php”,以防修改出錯(改代碼之前我們都最好備份一下原代碼).

3.打開“rewrite.php”文件中我們找到如下代碼:

function get_tag_permastruct() {if (isset($this->tag_structure))

{return $this->tag_structure;}if (empty($this->permalink_structure)) {

//修改這句

ag_structure = '';return false;}if 

(empty($this->tag_base))$this->tag_structure = $this->front . 
 
'tag/';else$this->tag_structure = $this->tag_base . 
 
'/';$this->tag_structure .= '%tag%';return $this->tag_structure;}

將其中的:

" if (empty($this->permalink_structure)) { ”

修改為

“ if (!empty($this->permalink_structure)) { "

注意這個里面只加了一個英文“!”號。

雖然中文tag標簽沒問題了,但是去訪問內頁的時候,發現偽靜態失效了,沒辦法只能還原剛才修改的rewrite.php文件(記得修改任何文件之前都要備份),繼續搜索其他方法……

終于功夫不負有心人,又找到一個完美方案,測試中文404真的沒有報錯了,方法如下:

1.打開wp-include文件夾,找到并打開編輯class-wp.php文件.

2.查找代碼:

$pathinfo = $_SERVER['PATH_INFO'];

把這句代碼替換成:

$pathinfo = mb_convert_encoding($_SERVER['PATH_INFO'], "UTF-8", "GBK");

3.查找代碼:

$req_uri = $_SERVER['REQUEST_URI'];

把這句代碼替換成:

$req_uri = mb_convert_encoding($_SERVER['REQUEST_URI'], "UTF-8", "GBK");

由于自己較懶惰,方案里面提供了修改好的class-wp.php文件,于是我直接下載上傳了,測試頁面偽靜態也沒有問題,其他訪問也沒問題.

第二天我去發布文章,上傳圖片的時候發現圖片上傳不了,以為是自己開的CDN加速的原因,于是乎用測試域名去測試發現還是無法上傳,以為是插件沖突了,全部停止還是不行,再次懷疑自己轉移數據沒有轉移完全,再去轉了一次,重新轉移測試圖片上傳成功,又去把之前修改的class-wp.php文件上傳以后,去測試圖片上傳失敗,還原此文件上傳成功.

終于找到原因了,原來上面的方法還是有瑕疵,再去仔細一看教程,原來只適用wordpress3.5以下的版本.

心灰意冷,再去找方法,終于找到一個適用于wordpress4.1版本的方法,如下:

1.首先找到wordpress的wp-includes目錄下-》class-wp.php文件,進行如下修改就可以解決在Windows系統下部分中文標簽無法打開的情況。

2.wp-includes/class-wp.php 153 行:

$pathinfo = isset( $_SERVER['PATH_INFO'] ) ? $_SERVER['PATH_INFO'] : '';

修改為:

$pathinfo = isset( $_SERVER['PATH_INFO'] ) ? mb_convert_encoding($_SERVER['PATH_INFO'],'utf-8', 'GBK') : '';

3.wp-includes/class-wp.php 157 行:

list( $req_uri ) = explode( '?', $_SERVER['REQUEST_URI'] );

修改為:

list( $req_uri ) = explode( '?', mb_convert_encoding($_SERVER['REQUEST_URI'], 'utf-8','GBK') );

然后將class-wp.php文件保存并上傳覆蓋原文件,然后再全面測試偽靜態、中文標題、圖片上傳都正常,此時終于完美解決.

在搜索的時候還找到了其他方法,未測試不知道是否可以解決,版本不同,方法不同,可以自行參考.

WordPress3.1之前版本,方法如下:

打開 WP-include/classes.php(3.1之前版本)或WP-include/class-wp.php(3.1+之后版本,下文稱新版)找到第154行(新版為142行),把:

$pathinfo = $_SERVER['PATH_INFO';

替換為:

$pathinfo = mb_convert_encoding($_SERVER['PATH_INFO'], 'UTF-8', 'GBK');

找到第159行(新版為147行),把:

$req_uri = $_SERVER['REQUEST_URI';

替換為:

$req_uri = mb_convert_encoding($_SERVER['REQUEST_URI'], 'UTF-8', 'GBK');

還有方法如下:

登錄wordpress后臺,在文章標簽里。給每一個含中文的Tags標簽,加上一個標簽別名。“別名” 是URL友好的另外一個名稱。它通常為小寫并且只能包含字母,數字和連字符。

對于上百個以上中文Tags標簽的博客,此種方法工作量巨大。

還有說是ISAPI_Rewrite偽靜態的規則沒有寫好才導致找不到網頁文件的,其實就是更改一下規則就可以了,之前的tag偽靜態的規則.

RewriteRule /tag/(.*)$ /index/.php/?tag=$1

更改后的規則:

RewriteRule /tag/(.*)/$ /index/.php/?tag=$1

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 银川市| 土默特左旗| 乐至县| 灵武市| 怀来县| 新龙县| 金堂县| 正镶白旗| 体育| 卓资县| 阿拉善盟| 乳山市| 蓝田县| 呼图壁县| 湟源县| 伊吾县| 玉溪市| 平遥县| 奉化市| 宁武县| 潮安县| 疏勒县| 六枝特区| 岗巴县| 博湖县| 闽侯县| 旅游| 泾川县| 万荣县| 北安市| 云林县| 比如县| 上思县| 曲周县| 黑山县| 永济市| 紫阳县| 宜君县| 新平| 东海县| 大埔县|