首首先我们要修改httpd.ini后请重启IIS
把以下内容保存为httpd.ini即可:
[ISAPI_Rewrite]
CacheClockRate 3600
RepeatLimit 32
#上面三行不要改动,以下为规则设置
RewriteRule /([0-9,a-z]*)/(\d+).html /$1/3wow.mobi?InfoID=$2 [I]
#文件内容结束
附加说明一下设置规则时的格式:
I (ignore case)不管大小写强行指定字符匹配
例:RewriteRule /code/project/([0-9,a-z]*).html /3wow.mobi\?softpy=$1 [I]
其他的参数一览
I (ignore case)
不管大小写强行指定字符匹配,这个FLAG影响RewriteRule指令和相应的RewriteCond 指令
F (Forbidden)
对客户端做反应,停止REWRITING进程并且发送403错误,注意在这种情况下FORMATSTRING 是无用的并可以设置为任何非空字符串。
L (last rule)
不应用任何重写规则在此停止重写进程,使用这个FLAG以阻止当前被重写的URI被后面的规则再次重写
N (Next iteration)
强制REWRITINGENGINE调整规则目标并且从头重启规则检查(所有修改将保存),重启次数由RepeatLimit指定的值限制,如果这个数值超过N FLAG将被忽略
NS (Next iteration of the same rule)
以N标记工作不从相同的规则重启规则规则进程(例如强制重复规则应用),通过RepeatLimit指令指定一个反复实行某一规则的最大数目,
P (force proxy)
强制目的URI在内部强制为代理需求并且立即通过ISAPI扩展应付代理需求,必须确认代理字符串是一个有效的URI包括协议主机等等否则代理将返回错误
R (explicit redirect)
强制服务器对客户端发出重定向指示即时应答,提供目的URI的新地址,重定向规则经常是最后规则
RP (permanent redirect)
几乎和[R]标记相同但是发布301HTTP状态而不是302HTTP状态代码
U (Unmangle Log)
当URI是源需求而不是重写需求时记载URI
O (nOrmalize)
在实行之前标准化字符串。标准化包括URL-ENCODING,不合法的字符的再移动等,这个标记对于URLS和URLS-ENDODED头是有用的
CL (Case Lower)
小写
CU (Case Upper)
大写
另外,设置时就是用正则表达示模糊匹配。简单一下常用的:
([a-z]*) 匹配小写英文字母
(\d+) 和 ([0-9]*) 匹配数字
(.*) 模糊匹配,包括字母和数字及其他非换行符号
例:
[ISAPI_Rewrite]
# 3600 = 1 hour
CacheClockRate 3600
RepeatLimit 32
# Protect httpd.ini and httpd.parse.errors files
# from accessing through HTTP RewriteRule /3wow_(\d+)\.html /3wow\.mobi\?npage=$1 [N,I]
# 这里是解析帖子列表 安装根目录
#不带参数直接转的
RewriteRule /index\.html /index\.asp
#带一个数字型参数的
RewriteRule /index-(\d+)\.html /index\.asp\?anid=$1
#带一个字母数字混和型参数的
RewriteRule /index-([0-9,a-z]*)\.html /index\.asp\?an1=$1
#带一个字母型参数的
RewriteRule /index_([a-z]*)\.html /index\.asp\?an=$1
#带一个数字型参数的
RewriteRule /3wow-(\d+)\.html /products\.asp\?id=$1
#带一个字母型参数加两个数字的
RewriteRule /class-([a-z]*)-(\d+)-(\d+)\.html /class\.asp\?lx=$1&anid=$2&nid=$3
httpd.ini来实现301重定向
下面详细讲讲在window+iis 环境下如何利用httpd.ini来实现301重定向。当然也会提到302重定向。
不同的ISAPI_Rewrite版本会有所不同,我们一个一个来看:
ISAPI_Rewrite 1.x下:ISAPI是1.3不能实现301永久性重定向的,只能实现302临时性重定向,就像我的主机一样,有点可惜。此时可以利用404页面实现301重定向。
<blockquote>[ISAPI_Rewrite]
CacheClockRate 3600
RepeatLimit 32
# For ISAPI_Rewrite 1.x
RewriteCond Host: ^jsjk114\.com$
RewriteRule(.*) http\://www\.jsjk114\.com$1 [R,I]
# 注意此处只是实现了302重定向
# For ISAPI_Rewrite 2.x
RewriteCond Host: ^jsjk114\.com$
RewriteRule(.*) http\://www\.jsjk114\.com$1 [I,RP]
# For ISAPI_Rewrite 3.x
RewriteCond%{HTTP:Host} ^jsjk114\.com$
RewriteRule (.*) http\://www\.jsjk114\.com$1[NC,R=301]
</blockquote>说明:[I,RP]:I表示忽略大小写,RP表示使用301转向,以上都是整个域名重定向。
详细的可以查阅ISAPI Rewrite2官方使用手册