WordPress 中文 Tag 链接问题解决方案
WordPress 中文 Tag 链接无法正常访问的问题想必多数使用 Windows+IIS 主机的朋友都有遇到,以前出现这个问题增加一条伪静态规则就可以解决,见:IIS 下实现 WordPress 伪静态,换了虚拟主机后不行了。找到一些可行的解决办法,摘录如下:
产生这个问题的主要原因是地址编码问题,及UTF-8和GBK之间转换的问题。IIS 对 URL 截取的时候取得的是 GBK 编码,但是 WordPress 中文都用的 UTF-8 编码,所以我们要对编码进行处理后再交给数据库进行查询。
一、转换编码解决 WordPress 中文 Tag 链接问题(推荐)
打开文件:wp-includes\classes.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");
保存,上传,问题解决。
二、禁止 Tag 伪静态解决 WordPress 中文 Tag 链接问题
打开文件:wp-includes/rewrite.php
查找:
function get_tag_permastruct() {
修改这个函数中的:
if (empty($this->permalink_structure)) {
为:
if (!empty($this->permalink_structure)) {
完成。
已有 5 条评论 »
谢了,的确可以用!
我改过了还是不能使用...
哇,你用的GoDaddy主机,Win还是Linux?
国内主机照上面的修改是可行的。GD是英文服务器系统,尚不明确,现在我用Typecho放在GoDaddy主机(Win)上也存在中文tag问题,提示404。
正在找办法解决。
Win 主机 IIS7
我也是Win+IIS7,共同关注这个问题,有解决办法我会更新在这里。