Windows服务器下用IIS Rewrite组件为IIS设置伪静态方法

URL重写规则(Rewrite Rule),也就是只要将写好的httpd.ini放在站点根目录,就能使用了。php

安装说明:下载后能够解压出 ISAPI_Rewrite.dll ,httpd.ini 这两个文件放到某个文件夹下面,而后在 IIS 站点属性的 ISAPI 中加载 ISAPI_Rewrite.dll  就能够了, httpd.ini  是配置文件里面有例子。若是加载不成功的话 请给 ISAPI_Rewrite.dll   安全属性为彻底。html



二、在“IIS管理器”里选择网站,右键,属性。api

 

三、选择“ISAPI”,点击“添加”。安全



四、填入筛选器名称,如“rewrite”。服务器

 

五、可执行文件下方点击“浏览”,选择刚才解压的Rewrite组件位置,Rewrite.dll。ide

 
六、确认选择正确后,点击“肯定”。

七、点击“肯定”,完成筛选器添加。网站

八、重启IIS。ui

 

九、重启IIS后,再次选择站点,右键,属性,看到以下所示向上的绿箭头,说明 IIS Rewrite 成功添加并运行。spa

 

IIS Rewrite 规则设置插件

解压后的 IIS Rewrite 组件目录(如 C:Rewrite)中,有一个 httpd.ini 文件,将相应规则写入到这个文件中便可。

1. 安装重写插件Rewrite.dll

若是你的 IIS 服务器加载过 Rewrite.dll 则能够不用下载。

Rewrite.dll文件:百度搜索关键字:Rewrite.dll 下载

加载 Rewrite.dll

在 IIS 的 Isapi 上添加筛选器

筛选器名称为:re

可执行文件选择 Rewrite.dll 就能够了!

2. 配置 httpd.ini
打开你的httpd.ini,找到

[ISAPI_Rewrite]

# 3600 = 1 hour
CacheClockRate 3600

RepeatLimit 32

# Protect httpd.ini and httpd.parse.errors files
# from accessing through HTTP
RewriteRule ^(.*)/archiver/([a-z0-9-]+.html)$ $1/archiver/index.php?$2
RewriteRule ^(.*)/forum-([0-9]+)-([0-9]+).html$ $1/forumdisplay.php?fid=$2&page=$3
RewriteRule ^(.*)/thread-([0-9]+)-([0-9]+)-([0-9]+).html$ $1/viewthread.php?tid=$2&extra=page%3D$4&page=$3
RewriteRule ^(.*)/profile-(username|uid)-(.+?).html$ $1/viewpro.php?$2=$3

以上是 Discuz!官方提供的配置代码,注意正则格式。

3. 应用
好比,将read.php?bl_id=123&bu_id=456 伪静态成 /html/123/456.html

能够这样写:

RewriteRule ^(.*)/html/([0-9]+)/([0-9]+).html$ $1/read.php?bl_id=$2&bu_id=$3

要使你的IIS服务器支持伪静态重写,按如下步骤来:

1. 安装重写插件Rewrite.dll

若是你的 IIS 服务器加载过 Rewrite.dll 则能够不用下载。

加载 Rewrite.dll

在 IIS 的 Isapi 上添加筛选器

筛选器名称为:re

可执行文件选择 Rewrite.dll 就能够了!

2. 配置 httpd.ini
打开你的httpd.ini,找到

[ISAPI_Rewrite]

# 3600 = 1 hour
CacheClockRate 3600

RepeatLimit 32

# Protect httpd.ini and httpd.parse.errors files
# from accessing through HTTP
RewriteRule ^(.*)/archiver/([a-z0-9-]+.html)$ $1/archiver/index.php?$2
RewriteRule ^(.*)/forum-([0-9]+)-([0-9]+).html$ $1/forumdisplay.php?fid=$2&page=$3
RewriteRule ^(.*)/thread-([0-9]+)-([0-9]+)-([0-9]+).html$ $1/viewthread.php?tid=$2&extra=page%3D$4&page=$3
RewriteRule ^(.*)/profile-(username|uid)-(.+?).html$ $1/viewpro.php?$2=$3

以上是 Discuz!官方提供的配置代码,注意正则格式。

3. 应用
好比,将read.php?bl_id=123&bu_id=456 伪静态成 /html/123/456.html

能够这样写:

RewriteRule ^(.*)/html/([0-9]+)/([0-9]+).html$ $1/read.php?bl_id=$2&bu_id=$3

再例:

123.php?id=123
123/id/123
RewriteRule ^123/id/([0-9][0-9][0-9])/$ /123.php?id=$1
or
RewriteRule ^123/id/([0-9]+)$ /123.php?id=$1

PW的规则:[ISAPI_Rewrite]
RewriteRule ^(.*)-htm-(.*)$ $1.php?$2
RewriteRule ^(.*)/simple/([a-z0-9_]+.html)$ $1/simple/index.php?$2

注:好比互动百科的伪静态,设置方法和这些都是差很少的,学会这个方法了其它的一些系统的伪静态设置都是差很少的,不一样的可能就是伪静态的规则设置会不同。

我的备注:

这里的$1, $2, $3就是前一个表达式的匹配值

好比:

^(.*)/simple/([a-z0-9_]+.html)$ $1/simple/index.php?$2

相关文章
相关标签/搜索