wordpress中文tag标签出现404另类解法

相信很多朋友用wordpress建站的时候,都遇见过这样的问题,中文标签打不开,提示404,是因为在window主机下,wordpress不能友好的支持中文引起。

百度了很多方法,都不能成功,下面我先分享下百度出来的方法:

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

以上方法我都试过了,都不管用,不能解决问题,我就换个思维想想,既然不能支持中文,那把别名换成英文的不就行了,还利于SEO和收录,所以第四种方法出现了。

方法4:巧用Atuo Tag Slug插件,此插件就是把中文标签别名转换成英文或者拼音,使用了一下,完美解决问题。特此分享给大家,软件的下载地址百度搜索一下。我就不提供了。

评论已关闭