`
jubincn
  • 浏览: 232820 次
  • 性别: Icon_minigender_1
  • 来自: 宁波
文章分类
社区版块
存档分类
最新评论

wordpress 设置静态后标签中中文链接找不到页面的解决方法

阅读更多

转自:http://www.li.cm/news/2011/04/17/wordpress-%E8%AE%BE%E7%BD%AE%E9%9D%99%E6%80%81%E5%90%8E%E6%A0%87%E7%AD%BE%E4%B8%AD%E4%B8%AD%E6%96%87%E9%93%BE%E6%8E%A5%E6%89%BE%E4%B8%8D%E5%88%B0%E9%A1%B5%E9%9D%A2%E7%9A%84%E8%A7%A3%E5%86%B3%E6%96%B9.html

用win IIS主机,设置Wordpress的TAG标签,在前台点击进入的时候发现打不开跳到404错误页,编码问题。

所以需要把它转换成UTF-8和GBK的编码,下面推荐三种解决方法:
一、修改wp-includes/rewrite.php

这是网上最常见的方法,原理是,让WordPress在对其他内容使用Permalink的时候,对tag不使用,而使用链接2的QueryString模式发送中文编码:

if (empty($this->permalink_structure)) { //-----this line need change------
改为

if (!empty($this->permalink_structure)) {

二、如果你用的是windows主机,还可以这样做:

IIS会将PathInfo中的UTF-8转换成GBK,而QueryString就不会转换,故而为了使用Permalink,采用以下方法:
打开wp-includes/classes.php文件。在154到159行位置

if ( isset($_SERVER['PATH_INFO']) )
$pathinfo = $_SERVER['PATH_INFO'];
else
$pathinfo = '';
$pathinfo_array = explode('?', $pathinfo);
$pathinfo = str_replace("%", "%25", $pathinfo_array[0]);
$req_uri = $_SERVER['REQUEST_URI'];

改为

if ( isset($_SERVER['PATH_INFO']) )
$pathinfo = mb_convert_encoding($_SERVER['PATH_INFO'], "UTF-8", "GBK");
else
$pathinfo = '';
$pathinfo_array = explode('?', $pathinfo);
$pathinfo = str_replace("%", "%25", $pathinfo_array[0]);
$req_uri = mb_convert_encoding($_SERVER['REQUEST_URI'], "UTF-8", "GBK");

这种发放的缺点是 :只对Windows主机、且必须是Windows下的IIS主机有效。

三、修改tag base

原理同上,只要让WordPress在打开了Permalink功能后继续对tag不理不问就行了。那么,欺骗WordPress,让它用链接2的格式来显示Permalink,可行么?可行,因为WordPress可以自定义Permalink的形式:
在WordPress的 (设置)Settings ? (固定链接)Permalinks ? (标签前缀)Tag base 中填上
/?tag=
注意””不能少,引用原文中的写法不对。另外要注意每次输入””,WP都会再次转义为””,所以每次点提交都会把””翻一倍,点两次就是”\”,所以不要多点,一次就对了。
这个方法的结果是使得链接变成这个样子
www.li.cm/?tag=/中文/
多出来的斜杠对于服务器丝毫没有影响,还是被视为QueryString,效果同上。
局限是链接变得更加不好看了,更为致命的是插件生成的Sitemap中,tag链接会变成错误的形式,如果你很在乎Sitemap,请不要使用这个方法,除非你真的无法修改自己的rewrite.php文件。

但是当你使用WP-SuperCache或者类似的缓存插件时,它会加入自己的rewrite规则,所有请求先由自己判断,不在缓存中或者不符合缓存规则才交由WordPress处理。但问题在于,它不支持中文URL的解析,哪怕是QueryString也不行。于是我们必须绕过它。
这是WP-SuperCache在.htaccess文件里所添加的rewrite规则

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_METHOD} !=POST
RewriteCond %{QUERY_STRING} !.*s=.*
RewriteCond %{QUERY_STRING} !.*p=.*
RewriteCond %{QUERY_STRING} !.*attachment_id=.*
RewriteCond %{QUERY_STRING} !.*wp-subscription-manager=.*
RewriteCond %{HTTP_COOKIE} !^.*(comment_author_|wordpress|wp-postpass_).*$
RewriteCond %{HTTP:Accept-Encoding} gzip
RewriteCond %{DOCUMENT_ROOT}/wp-content/cache/supercache/%{HTTP_HOST}/$1/index.html.gz -f
RewriteRule ^(.*) /wp-content/cache/supercache/%{HTTP_HOST}/$1/index.html.gz [L]
RewriteCond %{REQUEST_METHOD} !=POST
RewriteCond %{QUERY_STRING} !.*s=.*
RewriteCond %{QUERY_STRING} !.*p=.*
RewriteCond %{QUERY_STRING} !.*wp-subscription-manager=.*
RewriteCond %{QUERY_STRING} !.*attachment_id=.*
RewriteCond %{HTTP_COOKIE} !^.*(comment_author_|wordpress|wp-postpass_).*$
RewriteCond %{DOCUMENT_ROOT}/wp-content/cache/supercache/%{HTTP_HOST}/$1/index.html -f
RewriteRule ^(.*) /wp-content/cache/supercache/%{HTTP_HOST}/$1/index.html [L]

我们要做的就是不让它去判断中文tag链接,在两个 RewriteCond %{REQUEST_METHOD} !=POST 后面分别加入这样一句:
RewriteCond %{QUERY_STRING} !.*tag=.*

含义是如果QueryString中含有tag字样,请不要解析(交给下一条规则,一般来说就是WordPress的index.php了)。

PS:Windows+IIS主机下,通过方案一可以完美解决中文tag问题,Linux+Apache主机下,不能使用中文Permalink,除非修改Apache,否则只有用方案一和方案三绕行。方案一是较为推荐的方法,但是搭配WP-SuperCache使用的时候,需要自己在.htaccess文件中加入一条不处理tag链接的规则。

分享到:
评论

相关推荐

    WordPress伪静态和中文标签支持配置方法

    WORDPRESS博客站已经运行快一年了,在伪静态上一直很纠结,空间默认不支持伪静态,网上找了很多方法,用404错误页面来做伪静态,现在发现了问题了。google收录了,但百度不收录,因为百度在爬行页面的时候,文章链接...

    基于WordPress开发的高颜值的自适应Puock主题,支持白天与黑夜模式v2.8.2

    安装请到 发行版本 中进行下载最新版本,然后到 WordPress 管理后台中的「外观」-「主题」中点击「添加」,选择 Puock 的主题包进行上传安装并启用即可。提示:为了防止主题不兼容,请在安装主题前进行数据备份,...

    淘客帝国V5.20破解版

    优化 没填搜索内容搜索,会出现找不到页面的问题优化。 优化 wordpress整合乱码问题,以及标签和类别混淆问题 优化 优化 onepage模板,图片不能直接到淘宝的问题,后台设置无效的问题 优化 能搜出来,不能跳转...

    淘客帝国原V5.20专业版,加强了标题和商品描述伪原创

    优化 没填搜索内容搜索,会出现找不到页面的问题优化。 优化 wordpress整合乱码问题,以及标签和类别混淆问题 优化 优化 onepage模板,图片不能直接到淘宝的问题,后台设置无效的问题 优化 能搜出来,不能跳转淘宝,...

    淘客帝国5.21

    优化 没填搜索内容搜索,会出现找不到页面的问题优化。 优化 wordpress整合乱码问题,以及标签和类别混淆问题 优化 优化 onepage模板,图片不能直接到淘宝的问题,后台设置无效的问题 优化 能搜出来,不能跳转淘宝,...

    淘客帝国v5.20破解版商业无限制稳定版

    优化 没填搜索内容搜索,会出现找不到页面的问题优化。 优化 wordpress整合乱码问题,以及标签和类别混淆问题 优化 优化 onepage模板,图片不能直接到淘宝的问题,后台设置无效的问题 优化 能搜出来,不能跳转淘宝,...

    淘帝免费版

    优化 没填搜索内容搜索,会出现找不到页面的问题优化。 优化 wordpress整合乱码问题,以及标签和类别混淆问题 优化 优化 onepage模板,图片不能直接到淘宝的问题,后台设置无效的问题 优化 能搜出来,不能跳转...

    淘客帝国v5.21完整官方版

    优化 没填搜索内容搜索,会出现找不到页面的问题优化。 优化 wordpress整合乱码问题,以及标签和类别混淆问题 优化 优化 onepage模板,图片不能直接到淘宝的问题,后台设置无效的问题 优化 能搜出来,不能跳转淘宝,...

    淘客帝国v5.20破解版稳定官方原版

    优化 没填搜索内容搜索,会出现找不到页面的问题优化。 优化 wordpress整合乱码问题,以及标签和类别混淆问题 优化 优化 onepage模板,图片不能直接到淘宝的问题,后台设置无效的问题 优化 能搜出来,不能跳转淘宝,...

    淘客帝国5.X 完整无限制版本

    优化 没填搜索内容搜索,会出现找不到页面的问题优化。 优化 wordpress整合乱码问题,以及标签和类别混淆问题 优化 优化 onepage模板,图片不能直接到淘宝的问题,后台设置无效的问题 优化 能搜出来,不能...

    淘客帝国v5.20最新专业无限制版,后台完美本地化

    优化 没填搜索内容搜索,会出现找不到页面的问题优化。 优化 wordpress整合乱码问题,以及标签和类别混淆问题 优化 优化 onepage模板,图片不能直接到淘宝的问题,后台设置无效的问题 优化 能搜出来,不能跳转淘宝,...

    淘客帝国5.16版稳定版

    优化 没填搜索内容搜索,会出现找不到页面的问题优化。 优化 wordpress整合乱码问题,以及标签和类别混淆问题 优化 优化 onepage模板,图片不能直接到淘宝的问题,后台设置无效的问题 优化 能搜出来,不能跳转淘宝,...

    淘客帝国v5.16完美破解版.rar

    优化 没填搜索内容搜索,会出现找不到页面的问题优化。 优化 wordpress整合乱码问题,以及标签和类别混淆问题 优化 优化 onepage模板,图片不能直接到淘宝的问题,后台设置无效的问题 优化 能搜出来,不能跳转淘宝,...

    Simple Down 简单下载系统 v6.2.zip

    现在有一个问题就是文件名的第一个字符不能是中文,否则得不到文件名。 例如:海兵大侠.zip 这个文件你使用批量发布标题和文件名会变成空。修改一下名字:[文档].海兵大侠.zip 就可以了,因为第一个字符不是中文了...

    淘客帝国破解版

    产品详细页因为淘宝BUG,经常取不到推广地址问题。 增加图片伪原创,可以伪造本地地址,流量充足的可以使用。 配置中心可直接设置网址中文编码 商品详情前后可以设置伪原创混淆文章,充实到产品详情内。 单类别站...

    OpooPress 网站发布系统 v1.0 beta

    支持和火车头采集器发布,支持 Markdown、FreeMarker、HTML & CSS & Images 通过 可方便地发布到任何地方博客特性 - 支持固定链接、树形分类目录、标签、页面、文章、归档、RSS等博客特性支持自定义URL优化,中文,...

    SEO编程PHP中文版

    15.4 列入到著名的目录中 15.5 请求并交换相关链接 15.6 购买链接 15.7 创建链接诱饵 15.8 添加社会书签功能 15.9 启动博客或论坛 15.10 处理纯粹的Flash或Ajax站点 15.11 防止成为黑帽的牺牲品 15.12 检查...

    miceCMS觅策企业网站管理系统 5.0.zip

    4、miceCMS设计时包含了大量的SEO优化模块,用户可针对整个网站每个页面做出不同的优化调整,可以针对每个页面设置不同的标题,关键字和页面描述,生成HTML时栏目可自定义栏目名,文章可设置统一格式的文件名或单独...

    Java开源的下一代社区平台Symphony.zip

    万能的 GitHub 上连个能用的 Java 社区系统都找不到,Sym 填补了这个宇宙级空白 做最 NB 的开源社区系统,预计几年以后 82% 的社区都将是 Sym 搭建的 作者技痒,炫技之作,Ruby/Python/Node.js/(特别是)PHP ...

    X-Cart Gold 4.5.4.zip

    ] 2012年10月24日,的随机 - 问题(0126290):贝宝生成的安装程序将用户重定向到贝宝设置“页面的激活链接。固定的。 [!] 2012年10月23号,随机 - 错误(0126462):PayPal快速结帐,高级和Payflow链接与Zip 4...

Global site tag (gtag.js) - Google Analytics