WordPress完美解决中文标签404问题

来自:互联网
时间:2020-03-25
阅读:

wordpress站点做了伪静态,并定义了固定连接的格式后,会出现中文标签404的问题,其它都正常,就是在wordpress中文tag标签打开是404页面错误。

由于wp是外国的产品,所以并没有考虑中文标签的兼容性问题,不少朋友都会遇到中文标签404的问题,下面我来分享一下解决这种蛋疼的问题方法。

解决 WordPress 无法打开中文标签链接的文章(服务器支持 UTF-8,不再需要修改文件支持中文链接。)

首先找到wordpress的wp-includes目录下-》class-wp.php文件,进行如下修改即可完美解决。

wp-includes/class-wp.php 153 行:

$pathinfo = isset( $_SERVER['PATH_INFO'] ) ? $_SERVER['PATH_INFO'] : '';

修改为:

$pathinfo?= isset( $_SERVER['PATH_INFO'] ) ? mb_convert_encoding($_SERVER['PATH_INFO'], 'utf-8', 'GBK') : '';

wp-includes/class-wp.php 157 行:

list( $req_uri )?= explode( '?', $_SERVER['REQUEST_URI'] );

修改为:

list( $req_uri )?= explode( '?', mb_convert_encoding($_SERVER['REQUEST_URI'], 'utf-8', 'GBK') );

通过以上修改,即可完美解决!

方法一:更改每个标签的别名为英文或数字

此法适合大部分小站点,没有很多标签,一般发现问题的时候也都是新站,所以一个个更改起来比较容易,同样对后续的SEO也会有所帮助,毕竟链接中出现一串中文有点很low的感觉。不要感觉很麻烦的样子,因为更改过程很快,可能最多几分钟的样子。

操作方法:后台 - 文章 - 标签,快速编辑某标签,更改其别名为英文或数字即可。

方法二:使用插件

此法适合懒人或者标签量数百以上的站点,原理就是通过批量修改标签的别名或者拦截处理,这种方法一般可以做到一劳永逸,但很有可能意味着以后站点就离不开它了。

推荐插件:Auto Tag Slug 或 IIS Chinese Tag Permalink

操作方法:后台 - 插件 - 搜索插件名 - 安装并启用插件,后面的设置就很简单了。

方法三:更改服务器rewrite规则

此法适合有服务器管理权限且知道如何修改rewrite的站长,很多站长看到这里就pass了,但想折腾的你为何不多走一步呢?

之前的规则

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

更改后的规则

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

返回顶部
顶部