修改httpd.ini后請重啟IIS
以下是必須內(nèi)容,不用修改
[ISAPI_Rewrite]
CacheClockRate 3600
RepeatLimit 32
#上面三行不要改動,以下為規(guī)則設(shè)置
RewriteRule /([0-9,a-z]*)/(\d+).html /$1/show.mobi?id=$2 [I]
#文件內(nèi)容結(jié)束
附加說明一下設(shè)置規(guī)則時的格式:
其他的參數(shù)一覽
I (ignore case)
不管大小寫強行指定字符匹配,這個FLAG影響RewriteRule指令和相應(yīng)的RewriteCond 指令
F (Forbidden)
對客戶端做反應(yīng),停止REWRITING進程并且發(fā)送403錯誤,注意在這種情況下FORMATSTRING 是無用的并可以設(shè)置為任何非空字符串。
L (last rule)
不應(yīng)用任何重寫規(guī)則在此停止重寫進程,使用這個FLAG以阻止當(dāng)前被重寫的URI被后面的規(guī)則再次重寫
N (Next iteration)
強制REWRITINGENGINE調(diào)整規(guī)則目標并且從頭重啟規(guī)則檢查(所有修改將保存),重啟次數(shù)由RepeatLimit指定的值限制,如果這個數(shù)值超過N FLAG將被忽略
NS (Next iteration of the same rule)
以N標記工作不從相同的規(guī)則重啟規(guī)則規(guī)則進程(例如強制重復(fù)規(guī)則應(yīng)用),通過RepeatLimit指令指定一個反復(fù)實行某一規(guī)則的最大數(shù)目,
P (force proxy)
強制目的URI在內(nèi)部強制為代理需求并且立即通過ISAPI擴展應(yīng)付代理需求,必須確認代理字符串是一個有效的URI包括協(xié)議主機等等否則代理將返回錯誤
R (explicit redirect)
強制服務(wù)器對客戶端發(fā)出重定向指示即時應(yīng)答,提供目的URI的新地址,重定向規(guī)則經(jīng)常是最后規(guī)則
RP (permanent redirect)
幾乎和[R]標記相同但是發(fā)布301HTTP狀態(tài)而不是302HTTP狀態(tài)代碼
U (Unmangle Log)
當(dāng)URI是源需求而不是重寫需求時記載URI
O (nOrmalize)
在實行之前標準化字符串。標準化包括URL-ENCODING,不合法的字符的再移動等,這個標記對于URLS和URLS-ENDODED頭是有用的
CL (Case Lower)
小寫
CU (Case Upper)
大寫
另外,設(shè)置時就是用正則表達示模糊匹配。
簡單一下常用的:
([a-z]*) 匹配小寫英文字母
(\d+) 和 ([0-9]*) 匹配數(shù)字
(.*) 模糊匹配,包括字母和數(shù)字及其他非換行符號
例:
[ISAPI_Rewrite]
# 3600 = 1 hour
CacheClockRate 3600
RepeatLimit 32
# 放在根目錄
# 不帶參數(shù)直接轉(zhuǎn)的
RewriteRule /index\.html /index\.asp
#帶一個數(shù)字型參數(shù)的
RewriteRule /index-(\d+)\.html /index\.asp\?id=$1
#帶一個字母數(shù)字混和型參數(shù)的
RewriteRule /index-([0-9,a-z]*)\.html /index\.asp\?sname=$1
#帶一個字母型參數(shù)的
RewriteRule /index_([a-z]*)\.html /index\.asp\?name=$1
#帶一個數(shù)字型參數(shù)的
RewriteRule /show-(\d+)\.html /show\.asp\?id=$1
#帶一個字母型參數(shù)加兩個數(shù)字的
RewriteRule /show-([a-z]*)-(\d+)-(\d+)\.html /show\.asp\?lx=$1&anid=$2&nid=$3