httpd.ini內容寫法

首首先我們要修改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



ttpd.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官方使用手冊



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章