修改httpd.ini后請重啟IIS
以下是必須內容,不用修改
[ISAPI_Rewrite]
CacheClockRate 3600
RepeatLimit 32
#上面三行不要改動,以下為規則設置
RewriteRule /([0-9,a-z]*)/(\d+).html /$1/show.mobi?id=$2 [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
# 放在根目錄
# 不帶參數直接轉的
RewriteRule /index\.html /index\.asp
#帶一個數字型參數的
RewriteRule /index-(\d+)\.html /index\.asp\?id=$1
#帶一個字母數字混和型參數的
RewriteRule /index-([0-9,a-z]*)\.html /index\.asp\?sname=$1
#帶一個字母型參數的
RewriteRule /index_([a-z]*)\.html /index\.asp\?name=$1
#帶一個數字型參數的
RewriteRule /show-(\d+)\.html /show\.asp\?id=$1
#帶一個字母型參數加兩個數字的
RewriteRule /show-([a-z]*)-(\d+)-(\d+)\.html /show\.asp\?lx=$1&anid=$2&nid=$3