1、浅谈在 IIS 环境下配置 Rewrite 规则2012-11-26 12:22 来源: 新站长网 作者 :新站长URL 静态化可以提高搜索引擎抓取,开启本功能需要对 Web 服务器增加相应的 Rewrite 规则,且会轻微增加服务器负担。本教程讲解如何在 IIS 环境下配置各个产品的 Rewrite 规则。下面以 Discuz 为例讲解 IIS 环境下配置 Rewrite 规则,希望大家能举一反三。一、首先下载 Rewrite.zip 的包,解压到任意盘上的任意目录。一、Rewrite.zip 下载各个产品的 Rewrite 规则包不同,请选择对应的产品下载对应的 Rewrite 规则。Di
2、scuz!6.0.0/6.1.0 的 Rewrite 规则下载地址:http:/ Home1.0.0 的 Rewrite 规则下载地址:http:/ 的 Rewrite 规则下载地址:http:/ 的 Rewrite 规则下载地址:http:/ Rewrite 规则并且重命名后如下图所示存放:二、配置方法Discuz!、UCHome、SupeSite/X-Space 、SupeV 的 Rewrite 配置方法类似,下面以 Discuz!6.0.0/6.1.0 的 Rewrite 规则配置方法为例讲解如何在 IIS 环境下配置 Rewrite 规则。在 IIS 管理器里选择网站,右键选择 “属性
3、”,如下图所示:在弹出的窗口里选择“ISAPI 筛选器”上图中点击“添加” ,在弹出的窗口里“ 筛选器名称”填写“rewrite”上图界面中点击“浏览” ,选择下载解压后的 Discuz! Rewrite 规则目录下的 Rewrite.dll 文件浏览完毕点击“确定”添加完毕点击“确定”重新启动 IIS重新选择该站点 = 右键“ 属性”= “ISAPI 筛选器”,如果看到状态为向上的绿色箭头,就说明 Rewrite 模块安装成功了。Rewrite 规则配置成功了,但是这个时候浏览论坛地址依旧不是伪静态的,还需要到论坛后台做相应的设置才可以。论坛后台 = 全局 = 优化设置,下图中红色区域选项:
4、“URL 静态化”:如上图所示有五个选项,根据您的需求选择即可,最多可以选择五个,不选则不生效。“Rewrtie 兼容性”:如果您的服务器不支持 Rewrite 规则中的中文字符,请选择“是”。对于没有此问题的服务器,可以选择“否”。上面两项设置完毕“提交” 保存即可。这个时候返回到论坛首页随便打开一个版块或者一个帖子即可看到 Discuz! 的 Rewrite 伪静态配置成功!三、各个产品的 Rewrite 规则httpd.ini 文件内容如下配置复制内容到剪贴板 Code:ISAPI_Rewrite# 3600 = 1 hourCacheClockRate 3600RepeatLimit
5、32# Discuz! Rewrite 规则# 独立主机用户# Protect httpd.ini and httpd.parse.errors files# from accessing through HTTPRewriteRule (.*)/archiver/(fidtid)-w-+.html)?*(.*)$ $1/archiver/index.php?$2&$4RewriteRule (.*)/forum-(0-9+)-(0-9+).html?*(.*)$ $1/forumdisplay.php?fid=$2&page=$3&$4RewriteRule (.*)/thread-(0-9
6、+)-(0-9+)-(0-9+).html?*(.*)$ $1/viewthread.php?tid=$2&extra=page%3D$4&page=$3&$4RewriteRule (.*)/space-(usernameuid)-(.+).html?*(.*)$ $1/space.php?$2=$3&$4RewriteRule (.*)/tag-(.+).html?*(.*)$ $1/tag.php?name=$2&$3# SupeSite Rewrite 规则# 独立主机用户# 修改以下语句中的 /supesite 修改为你的 SupeSite 目录地址,如果程序放在根目录中,请将 /s
7、upesite 修改为 /RewriteRule /supesite/(0-9+)$ /supesite/index.php?uid/$1 LRewriteRule /supesite/(0-9+)/spacelist(.+)$ /supesite/index.php?uid/$1/action/spacelist/type$2 LRewriteRule /supesite/(0-9+)/viewspace(.+)$ /supesite/index.php?uid/$1/action/viewspace/itemid$2 LRewriteRule /supesite/(0-9+)/viewbb
8、s(.+)$ /supesite/index.php?uid/$1/action/viewbbs/tid$2 LRewriteRule /supesite/(0-9+)/(.*)$ /supesite/index.php?uid/$1/$2 LRewriteRule /supesite/action(.+)$ /supesite/index.php?action$1 LRewriteRule /supesite/category(.+)$ /supesite/index.php?action/category/catid$1 LRewriteRule /supesite/viewnews(.+
9、)$ /supesite/index.php?action/viewnews/itemid$1 LRewriteRule /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 修改为
10、/RewriteRule /uchome/(spacenetwork)-(.+).html$ /uchome/$1.php?rewrite=$2 LRewriteRule /uchome/(spacenetwork).html$ /uchome/$1.php LRewriteRule /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
11、.php?tv=$3&ti=$5&tc=$7&page=$9RewriteRule (.*)/ispecial(-tv-(0-9+)?(-ti-(0-9+)?(-tc-(0-9+)?(-page-(0-9+)?.html$ $1/ispecial.php?tv=$3&ti=$5&tc=$7&page=$9RewriteRule (.*)/icategory.html$ $1/icategory.phpRewriteRule (.*)/category-cid-(0-9+)(-tag-(-*)?(-timelimit-(0-9+)?(-orderlimit-(0-9+)?(-page-(0-9+
12、)?.html$ $1/category.php?cid=$2&tag=$4&timelimit=$6&orderlimit=$8&page=$10RewriteRule (.*)/vspace-(midusername)-(.+).html$ $1/vspace.php?$2=$3RewriteRule (.*)/video-(vidivid)-(.+).html$ $1/video.php?$2=$3RewriteRule (.*)/special-spid-(0-9+).html$ $1/special.php?spid=$2常见问题:配置好后,HTTPD.INI 配置也正确,但还是打不开。这时有可能是rewrite.dllhttpd.ini 的权限问题,可以试着给这两个文件 EVERYONE 的读取权限。本文来源:新站长网,转载请注明链接:http:/