WordPress中文tag出现404错误的解决办法

昨天偶然的情况发现自己博客的中文TAG内容页面全部提示为404错误,因为之前博客进行过改版,并且空间更换多次,所以怀疑是中搬迁的过程中有部分文件有变化造成的。在搜索很多方法都没有解决问题,不过看到很多朋友整理的一些方法不错,可能对其它遇到相关问题的朋友有帮助,就在这里帖出来方便大家。
第一种方法:
打开 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');

第二种方法:
1、在网站的根目录的wp-includes文件夹中找到“rewrite.php”这个文件;
2、备份一下“rewrite.php”,以防修改出错(改代码都最好备份一下原代码);
3、打开“rewrite.php”文件找到如下代码:
function 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)) { ”;(注意只加了一个英文“!”号,经测试,使用的这个方法有效。)
第三种方法:
这个方法也是小落最后解决中文TAG 404错误的方法,其实说到底就是ISAPI_Rewrite伪静态的规则没有写好才导致找不到网页文件的。其实就是更改一下规则就可以了:
小落SEO博客之前的tag伪静态的规则
RewriteRule /tag/(.*)$ /index\.php\?tag=$1

更改后的规则
RewriteRule /tag/(.*)/$ /index\.php\?tag=$1

其实就是在/tag/(.*)$代码中的$字符加一个/就可以了,原因暂时还没有分析出来,因为之前一直觉得加没加意思是一样的。

加载中...
加载中...