在 IIS 下使用 WordPress ,最闹心的事莫过于对 WP 固定链接的伪静态设置。网上有很多基于 ISAPI_Rewrite 的 URL 重写规则,大部分都不是太好用,这里推荐两款适用于 IIS 环境下的 WP URL 重写组件,供有独立主机的朋友轻松配置 WordPress 伪静态。
这两款 URL 重写组件使用都非常的简单,只需要解压后,打开 IIS 信息服务管理器,在你的 WordPress 站点属性中添加 ISAPI 筛选器,加载解压的 wp-url-rewriting.dll 或 WordPressURLRewrite32.dll ,然后重启 IIS 即可。然后到 WP 管理后台设置固定链接形式就好。
其中,WordPress URL Rewrite 可以打开 WordPressURLRewrite.ini 设置 WP 博客目录,比如 /blog 等,还可以排除不需要重写的目录。对于某些目录不需要URL重写的就将其排除,不会造成无法访问,比如 /wp-admin 等,Readme.txt里有详细说明。
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%/ ,最后面要加 / 。
除此之外,用过 Discuz! 论坛的朋友都知道 Discuz!提供有 Rewrite 组件,配置方法和效果与 ISAPI_Rewrite 相同。
请问要在iis排除要让某条规格不起作用怎么处理啊?如我不是目录admin也被rewrite怎么写呢?
"这两款组件都不支持 .html 后缀的 URL 重写",可惜啊,在你这里才找到原因,实在不易,感谢!!
请问虚拟主机也是这么设置吗?刚使用wp,伪静态不知怎么搞?
这两款组件都不支持 .html 后缀的 URL 重写
要支持 .html 后缀的 URL 重写 就更好了
还可以排除不需要重写的目录
很好用
谢谢提供。。。。。
正需要呢 希望好用
不错 不错 试试
嗯嗯。学习了!真的不能是.html ?
很多都是不能去掉index.php 不知道这个怎么样?
给力,测试通过,好用,只是不能html有点遗憾。
Typecho好是好就是什么东东都要自己装很麻烦。
受教。