IIS 下实现 WordPress 伪静态

IIS 下实现 WordPress 伪静态

在 IIS 下使用 WordPress ,最闹心的事莫过于对 WP 固定链接的伪静态设置。网上有很多基于 ISAPI_Rewrite 的 URL 重写规则,大部分都不是太好用,这里推荐两款适用于 IIS 环境下的 WP URL 重写组件,供有独立主机的朋友轻松配置 WordPress 伪静态。

  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 可以打开 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 相同。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据