IIS 下实现 WordPress 伪静态

windows下完wordpress一直是个麻烦事,我第一次安装wordpress,权限设置有问题,wordpress只能在iis的根目录的文件夹里才能显示正常,只用用www.domain.com/blog/这样的形式,很是郁闷。

从unix/linux下转到windows下更是麻烦,后台都是显示正常,首页空白!这个问题是模板没放进去。粗心了!!!!

iis下药实现wordpress的伪静态,需要安装url rewrite组件,我用的是下面的组件,还不错。

  1. wp_url_rewriting:URL Rewriting for WordPress under IIS

  2. WordPress URL Rewrite



这两款 URL 重写组件使用都非常的简单,只需要解压后,打开 IIS 信息服务管理器,在你的 WordPress 站点属性中添加 ISAPI 筛选器,加载解压的 wp-url-rewriting.dll 或 WordPressURLRewrite32.dll ,然后重启 IIS 即可。然后到 WP 管理后台设置固定链接形式就好。
WordPress URL Rewrite 分 32/64 位, 使用时选择适合自己的版本,还要注意给 dll 所在的目录加上 IIS_WPG 组的权限,如果服务器没有安装 MS VC++ 2008 Redistributable 需要运行文件夹中的 vcredist_x86.exe 来安装,否则在 ISAPI 筛选器中看到的始终是向下的红箭头状态,不可用。

备注:如果箭头红色并且向下,尝试检查组件文件夹的权限,重启一下站点就能箭头变成绿色并且向上。

另:这两款组件都不支持 .html 后缀的 URL 重写,只能以目录形式组成,比如你的固定链接使用的是 /%postname%.html 就需要改成 /%postname%/ ,希望更新版本能解决这个问题。

由于组件是外国人的,所以不支持中文的 tags ,所以,为了兼容中文的 tags ,还需要多加载 ISAPI_Rewrite 组件并配置规则 httpd.ini 来实现:


[ISAPI_Rewrite]

# 3600 = 1 hour

CacheClockRate 3600

RepeatLimit 32

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

这样就能支持任意字符的 tags 了,完美解决 WordPress 的 URL 重写问题。

注意 / 问题,规则正则结尾带 / ,设置固定链接时使用 /%postname%/ ,最后面要加 / 。