如何在IIS环境下配置Rewrite规则

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在IIS环境下配置Rewrite规则相关的知识,希望对你有一定的参考价值。

工具:

IIS 环境

方法:

1、 首先下载 Rewrite.zip 的包,解压到任意盘上的任意目录。

各个产品的 Rewrite 规则包不同,请选择对应的产品下载对应的 Rewrite 规则。

下载各个产品的 Rewrite 规则并且重命名后如下图所示存放:

2、 配置方法

Rewrite 配置方法类似,下面以的 Rewrite 规则配置方法为例讲解如何在 IIS 环境下配置 Rewrite 规则。

在 IIS 管理器里选择网站,右键选择“属性”,如下图所示:

3、在弹出的窗口里选择“ISAPI筛选器”

4、在弹出的窗口里“筛选器名称”填写“rewrite”

5、点击“浏览”,选择下载解压后的 Discuz!

6、浏览完毕点击“确定”

7、添加完毕点击“确定”

8、重新启动 IIS

9、重新选择该站点 => 右键“属性”=> “ISAPI 筛选器”,如果看到状态为向上的绿色箭头,就说明 Rewrite 模块安装成功了

10、write 规则配置成功了,但是这个时候浏览论坛地址依旧不是伪静态的,还需要到论坛后台做相应的设置才可以。

论坛后台 => 全局 => 优化设置,下图中红色区域选项:

注意事项:

这个时候需要在程序后台也要开启伪静态选项

参考技术A [ISAPI_Rewrite]
# 3600 = 1 hour
CacheClockRate 3600
RepeatLimit 32
# Discuz! Rewrite规则
# 独立主机用户
# Protect httpd.ini and httpd.parse.errors files
# from accessing through HTTP
RewriteRule ^(.*)/archiver/((fidtid)-[\\w\\-]+\\.html)\\?*(.*)$ $1/archiver/index\\.php\\?$2&$4
RewriteRule ^(.*)/forum-([0-9]+)-([0-9]+)\\.html\\?*(.*)$ $1/forumdisplay\\.php\\?fid=$2&page=$3&$4
RewriteRule ^(.*)/thread-([0-9]+)-([0-9]+)-([0-9]+)\\.html\\?*(.*)$ $1/viewthread\\.php\\?tid=$2&extra=page\\%3D$4&page=$3&$4
RewriteRule ^(.*)/space-(usernameuid)-(.+)\\.html\\?*(.*)$ $1/space\\.php\\?$2=$3&$4
RewriteRule ^(.*)/tag-(.+)\\.html\\?*(.*)$ $1/tag\\.php\\?name=$2&$3
# SupeSite Rewrite规则
# 独立主机用户
# 修改以下语句中的 /supesite 修改为你的SupeSite目录地址,如果程序放在根目录中,请将 /supesite 修改为 /
RewriteRule ^/supesite/([0-9]+)$ /supesite/index\\.php\\?uid/$1 [L]
RewriteRule ^/supesite/([0-9]+)/spacelist(.+)$ /supesite/index\\.php\\?uid/$1/action/spacelist/type$2 [L]
RewriteRule ^/supesite/([0-9]+)/viewspace(.+)$ /supesite/index\\.php\\?uid/$1/action/viewspace/itemid$2 [L]
RewriteRule ^/supesite/([0-9]+)/viewbbs(.+)$ /supesite/index\\.php\\?uid/$1/action/viewbbs/tid$2 [L]
RewriteRule ^/supesite/([0-9]+)/(.*)$ /supesite/index\\.php\\?uid/$1/$2 [L]
RewriteRule ^/supesite/action(.+)$ /supesite/index\\.php\\?action$1 [L]
RewriteRule ^/supesite/category(.+)$ /supesite/index\\.php\\?action/category/catid$1 [L]
RewriteRule ^/supesite/viewnews(.+)$ /supesite/index\\.php\\?action/viewnews/itemid$1 [L]
RewriteRule ^/supesite/viewthread(.+)$ /supesite/index\\.php\\?action/viewthread/tid$1 [L]
RewriteRule ^/supesite/mygroup(.+)$ /supesite/index\\.php\\?action/mygroup/gid$1 [L]
# UCHome Rewrite规则
# 独立主机用户
# 修改以下语句中的 /uchome 修改为你的uchome目录地址,如果程序放在根目录中,请将 /uchome 修改为 /
RewriteRule ^/uchome/(spacenetwork)-(.+)\\.html$ /uchome/$1\\.php\\?rewrite=$2 [L]
RewriteRule ^/uchome/(spacenetwork)\\.html$ /uchome/$1\\.php [L]
RewriteRule ^/uchome/([0-9]+)$ /uchome/space\\.php\\?uid=$1 [L]
# SupeV Rewrite规则
# 独立主机用户
RewriteRule ^(.*)/ivideo(-tv-([0-9]+))?(-ti-([0-9]+))?(-tc-([0-9]+))?(-page-([0-9]+))?\\.html$ $1/ivideo\\.php\\?tv=$3&ti=$5&tc=$7&page=$9
RewriteRule ^(.*)/ispecial(-tv-([0-9]+))?(-ti-([0-9]+))?(-tc-([0-9]+))?(-page-([0-9]+))?\\.html$ $1/ispecial\\.php\\?tv=$3&ti=$5&tc=$7&page=$9
RewriteRule ^(.*)/icategory\\.html$ $1/icategory\\.php
RewriteRule ^(.*)/category-cid-([0-9]+)(-tag-([^-]*))?(-timelimit-([0-9]+))?(-orderlimit-([0-9]+))?(-page-([0-9]+))?\\.html$ $1/category\\.php\\?cid=$2&tag=$4&timelimit=$6&orderlimit=$8&page=$10
RewriteRule ^(.*)/vspace-(midusername)-(.+)\\.html$ $1/vspace\\.php\\?$2=$3
RewriteRule ^(.*)/video-(vidivid)-(.+)\\.html$ $1/video\\.php\\?$2=$3
RewriteRule ^(.*)/special-spid-([0-9]+)\\.html$ $1/special\\.php\\?spid=$2

以上是discuz论坛的伪静态规则,可做参考。

以上是关于如何在IIS环境下配置Rewrite规则的主要内容,如果未能解决你的问题,请参考以下文章

如何在IIS环境下配置Rewrite

如何配置iis rewrite模块的url重写规则

IIS下rewrite

IIS7和IIS8环境下 ThinkPHP专用URL Rewrite伪静态规则

thinkphp在iis下如何写规则url重写

WIN2008系统的IIS7.0配置REWRITE伪静态环境