TypeCho 转 WordPress 之后,发现点击中文 tag 出现 404 页面,也就是点击无效了。试了几种修改链接样式,都没效果。也尝试了各种网上找的 3 中方法:

第一种方法:打开
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');

PS. 这个方法修改后,上传覆盖文件,直接就网站都打不开了…

第二种方法:1 、在网站的根目录的 wp-includes 文件夹中找到 「rewrite.php」 这个文件;2 、备份一下 「rewrite.php」,以防修改出错 (改代码之前我们都最好备份一下原代码);3 、打开 「rewrite.php」 文件中我们找到如下代码:

1function get_tag_permastruct() {if (isset($this->tag_structure))
{return $this->tag_structure;}if (empty($this->permalink_structure)) {
//修改这句 $this->tag_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;}

4 、将其中的

" if (empty($this->permalink_structure)) { 」 修改为 「 if (!
empty($this->permalink_structure)) { ";

注意这个里面只加了一个英文 「!」 号,经测试,使用的这个方法非常有效。 PS. 直接没找到这个文件内说的这段代码。。。

第三种方法:最后解决中文 TAG
404 错误的方法,其实说到底就是 ISAPI_Rewrite 伪静态的规则没有写好才导致找不到网页文件的。其实就是更改一下规则就可以了:之前的 tag 伪静态的规则

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

更改后的规则

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

PS. 跟自己的不符.. 求其他方法~~~