首先,产生中文tag链接无法打开或者找不到博客文章的原因在于WordPress不支持中文的编码。那我们
就需要强制让WordPress能支持中文的编码形式,即UTF-8和GBK编码。
修改方法,首先修改WP-include中的classes.php文件(需要使用用专门的PHP编辑器工具,推荐
EditPlus),将第47行和第52行代码进行修改。
代码如下 | 复制代码 |
第47行原代码: $pathinfo = $_SERVER['PATH_INFO']; 替换为: $pathinfo = mb_convert_encoding($_SERVER['PATH_INFO'], “UTF-8“, “GBK“); 第52行原代码: $req_uri = $_SERVER['REQUEST_URI']; 替换为: $req_uri = mb_convert_encoding($_SERVER['REQUEST_URI'], “UTF-8“, “GBK“); |
修改后,保存下,然后将保存后的classes.php文件上传并覆盖原文件即可
另一种办法
以下是wordpress 3.3的修改方法。【3.5版本的也通用的,不过代码是在1039行】
此方法只针对Windows服务器,Linux未测试过。
打开 wp-includes/rewrite.php,找到第1000行,【3.5版本在1039行】把:
代码如下 | 复制代码 |
if ( empty($this->permalink_structure) ) |
注意:此文件下有很多的“if ( empty($this->permalink_structure) )”,需修改的是位于第1000行
,“function get_extra_permastruct($name)”函数下的那一个。
替换为:
代码如下 | 复制代码 |
if ( !empty($this->permalink_structure) )【 |
其实就是用“!”屏蔽了错误】
注意:别用windows自带的记事本修改(推荐UltraEdit,Dreamweaver等)。
IIS上不能支持中文。
在网上看了几种解决方案,不过鄙人还是比较支持IIS对中文url解析的问题。找到
问题,修改起来就快多了。
打开wp-includesclasses.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']; |
改成以下
代码如下 | 复制代码 |
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]); 8.$req_uri = mb_convert_encoding($_SERVER['REQUEST_URI'], “UTF-8″, “GBK”); |