解决wordpress3.4中tag是中文时出现404的错误

2012 年 9 月 16 日 0 条评论 89 次阅读 0 人点赞

今天一个偶然机会通过百度的站长统计测试404错误页面,发现tag标签出现很多404,仔细查看以后出问题的都是中文字符的标签。在wordpress论坛里查了资料,发现还是中文字符编码问题,需要修改wordpress的代码来处理,原理是,IIS会将PathInfo中的UTF-8转换成GBK,而QueryString中就不会转换,故而为了使用Permalink,采用以下方法:
在文件wp-includes\wp-class.php中找到

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'];

替换成


$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");

具体可看本站演示

kenvi

这个人太懒什么东西都没留下