wordpress点击tag中文标签链接后没有找到您要找的内容

一、wordpress 使用动态链接tag标签中中文链接找不到页面的解决方法

产生中文tag链接无法打开或者找不到博客文章的原因在于WordPress不支持中文的编码。那我们就需要强制让WordPress能支持中文的编码形式,即UTF-8和GBK编码。  
  修改方法,修改wp-include中的classes-wp.php文件(WP3.1版本),将第145行和第150行代码进行修改。
  
  第145行原代码:
  $pathinfo = $_SERVER['PATH_INFO'];
  
  替换为:
  
  $pathinfo = mb_convert_encoding($_SERVER['PATH_INFO'], “UTF-8“, “GBK“);
  
  第150行原代码:
  
  $req_uri = $_SERVER['REQUEST_URI'];
  
  替换为:
  
  $req_uri = mb_convert_encoding($_SERVER['REQUEST_URI'], “UTF-8“, “GBK“);
  
  修改后,保存下,然后将保存后的classes-wp.php文件上传并覆盖原文件即可。

二、wordpress 设置静态后标签中中文链接找不到页面的解决方法

用win IIS主机,设置Wordpress的TAG标签,在前台点击进入的时候发现打不开跳到404错误页,编码问题。

所以需要把它转换成UTF-8和GBK的编码
1、修改wp-includes/rewrite.php

这是网上最常见的方法,原理是,让WordPress在对其他内容使用Permalink的时候,对tag不使用,而使用链接2的QueryString模式发送中文编码:

if (empty($this->permalink_structure)) { //—–this line need change——

改为

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

2、如果你用的是windows主机,还可以这样做:

IIS会将PathInfo中的UTF-8转换成GBK,而QueryString就不会转换,故而为了使用Permalink,采用以下方法:
打开wp-includes/classes.php文件。在154到159行位置
if ( isset($_SERVER['PATH_INFO']) )
$pathinfo = $_SERVER['PATH_INFO'];
else
$pathinfo = ”;
$pathinfo_array = explode(‘?’, $pathinfo);
$pathinfo = str_replace(“%”, “%25″, $pathinfo_array[0]);
$req_uri = $_SERVER['REQUEST_URI'];
改为

if ( isset($_SERVER['PATH_INFO']) )
$pathinfo = mb_convert_encoding($_SERVER['PATH_INFO'], “UTF-8″, “GBK”);
else
$pathinfo = ”;
$pathinfo_array = explode(‘?’, $pathinfo);
$pathinfo = str_replace(“%”, “%25″, $pathinfo_array[0]);
$req_uri = mb_convert_encoding($_SERVER['REQUEST_URI'], “UTF-8″, “GBK”);

这种发放的缺点是 :只对Windows主机、且必须是Windows下的IIS主机有效。

 

Copyright © All Rights Reserved · Proudly powered by WordPress

css.php