WordPress 中文 Tag 链接无法访问完美解决方案

今 天老白是第一次使用强大的wordpress 。之前不喜欢它是因为速度太慢了 后台用户体验也不好 纯是国外的风格  不过由于本人最近爱上了php也知道wordpress强大的seo功能~所以选择了wordpress作为我的第一个博客~总有很多东西想记下来 所以就开个博客好了~博客模板也找好了~不过刚在测试WP Keyword Link 自动内链插件就发现了wordpress 中文tag似乎还是无法正常访问~ 于是我一番折腾 终于搞定了 不敢独享  提供以下几种方法供朋友们参考解决

第一种是拥有 Windows+IIS7 主机的朋友增加一条伪静态规则就可以解决

wordpress 官方已经内置了 IIS7 URL Rewrite 的支持,但对于中文用户来说,官方内置的伪静态规则不能完好的支持中文tag的问题。现在帖出一个自用的的规则,可以解决wordpress的中文tag的问题。

将下列代码加入到web目录下的web.config文件的<system.webServer>之后就可以了:

<rewrite>
           <rules>
                <clear />
  <rule name="wordpress2.7" stopProcessing="true">
      <match url=".*" />
<conditions logicalGrouping="MatchAll">
 <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
    <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
   </conditions>
<action type="Rewrite" url="index.php" />
   </rule>
    <rule name="chinese tag" stopProcessing="true">
     <match url="/tag/(.*)" />
      <conditions logicalGrouping="MatchAll" />
   <action type="Rewrite" url="/index\.php\?tag={R:1}" />
     </rule>
 </rules>
</rewrite>
如果不是个人独立服务器的话 或者iis 用户的话 也写不了伪静态的虚拟主机用户的话 
 那么就只好修改程序咯 
这个也是没有办法的事情  站长穷 很多都只有虚拟主机

当然办法还是有的   如果大家的无法去使用伪静态规则的话  那么就直接使用一下两种办法也可以解决:

一、转换编码解决 WordPress 中文 Tag 链接问题(推荐) 打开文件:wp-includes\classes.php

查找: $pathinfo = $_SERVER['PATH_INFO'];

修改为: $pathinfo = mb_convert_encoding($_SERVER['PATH_INFO'], “UTF-8″, “GBK”);

再查找: $req_uri = $_SERVER['REQUEST_URI'];

修改为: $req_uri = mb_convert_encoding($_SERVER['REQUEST_URI'], “UTF-8″, “GBK”); 保存,上传,问题解决。

二、禁止 Tag 伪静态解决 WordPress 中文 Tag 链接问题

打开文件:wp-includes/rewrite.php 查找: function get_tag_permastruct() { 修改这个函数中的: if (empty($this->permalink_structure)) { 为: if (!empty($this->permalink_structure)) { 完成。

by the way!  老白用的是第一种 完美解决了 这个问题~希望对大家有帮助~

更多请访问 http://www.laobai.cn

相关日志

One Comment

  1. 箭头
    Posted 2010年07月29日 at 1:46 上午 | Permalink

    期待你的文章,精品文章

    回复

    老白 回复:

    一定坚持下去 虽然还没什么状态 我不会藏私的

    回复

Post a Comment

Your email is never published nor shared. Required fields are marked *

*
*