波斯码BOSSMA Information Technology

IIS下使用wordpress中文tag永久链接插件

发布时间:2010年12月14日 / 分类:PHP, WordPress / 次浏览 / 评论

在IIS下使用WordPress的永久链接,可以采用一个免费的ISAPI组件:WordPress URL Rewrite。只要指定需要Rewrite的目录,不需要再编写Rewrite规则。

关于这个ISAPI的使用请参考:
http://www.asgone.net/wordpress-url-rewrite-instead-of-404/
http://www.steveluo.name/wordpress-url-rewrite-isapi_rewrite/
我没有使用上边文章中提到的:ISAPI_Rewrite。

因为IIS下中文编码的问题,中文tag的永久链接发生404错误,一些朋友提供了修改代码进行转码的方法。

参考那些解决方案,我写了一个插件,以避免对wordpress核心程序的修改,方便以后升级及迁移。

点击这里下载

已经支持WordPress 3.1,感谢“旷达博客”的提醒,请更新插件。

代码很简单,只有两个函数。

这样就可以解决大部分的中文tag问题,但是仍旧有一些中文tag不能正确识别。

通过跟踪SQL语句,发现tag被转换成了其它的字符串,比如“mysql乱码”转成了“mysqlac”。

我尝试使用了多种转码方法,iconv、mb_convert_encoding,还有phpe.net作者以前写过的一个encoding类,均不能解决,

所以怀疑是IIS编码或者WordPress解析出了问题。

2010-12-17:部分中文不能解析的问题已经解决,原因是wordpress中preg_match匹配中文出错。

如果你有什么问题,欢迎留言。

本博客所有文章如无特别注明均为原创。
复制或转载请以超链接形式注明转自波斯码,原文地址《IIS下使用wordpress中文tag永久链接插件

关键字:

建议订阅本站,及时阅读最新文章!
【上一篇】 【下一篇】

目前有22 条评论

  1. 礼仪风尚 15楼:

    win2003主机 iis6 wordpress版本3.1.1 固定链接格式/%post_id%.html
    小站网址是www.mytstyle.com
    tag页面http://www.mytstyle.com/tag/%E7%A4%BC%E4%BB%AA 这个tag是“礼仪”一词
    翻页会404 但如果http://www.mytstyle.com/tag/礼仪/2 则正常翻页
    规则文件写过几次不对路 请博主指教
    谢谢 打扰了
    @bossma

    • 应该是在IIS中运行php解析中文的时候导致的问题,问题出在函数:get_pagenum_link,其中中文解析出现问题,你下载我最新的插件试试。

  2. 礼仪风尚 14楼:

    我的是中文tag 找了很多规则来试都不行 博主能指点一下嚒 谢谢@bossma

    • 同样的url规则,你试试换成英文可不可以,如果可以就是中文的问题,不可以就是url规则的问题。中文的问题使用这个插件可以解决,如果解决不了,请把你的测试环境告诉我 我测试下。

  3. 礼仪风尚 13楼:

    博主 翻页404怎么解决呢?

    • 如果url中包含中文,那很有可能还是中文识别的问题,如果不存在中文,那可能是永久链接设置的问题了。

  4. dae 12楼:

    突然发现~~分类目录无法打开~~~~
    如:
    http://www.52mzd.com/index.php/category/%E6%88%91%E5%92%8C%E5%A6%B9%E5%AD%90/

    • 我这个插件只解决了中文tag的问题,其它原理类似,就是字符编码处理的问题,你可以参考着改一下

  5. bossma 11楼:

    @无锡网站优化
    该插件适用:IIS+WordPress+WordPress URL Rewrite,我已经在windows2003+iis6测试过,iis7可能不适用

  6. 博客QQ多少啊,我升级3.1之前中文tag好的。现在中文tag打不开,你的那个插件也装了

发表评论