
ISAPI_Rewrite3 參數說明
作者:佚名 時間:2013-03-22 分享到:
AccessFileName指令
說明 | 設置分布式配置文件的名稱 |
語法 | AccessFileName filename [filename] ... |
默認值 | AccessFileName .htaccess |
使用環境 | server config |
指定一個ISAPI_ReWrite尋求分布式配置的文件名列表。默認文件名是.htaccess。ISAPI_ReWrite只能載入它能在這個列表中找到的第一個文件。默認情況下ISAPI_ReWrite管理者會以hidden屬性標記配置文件-它將防止文件被遠程用戶直接訪問到。
如果配置文件進行了任何修改,它將在下次請求服務器時自動加載。
4.2AllowOverride指令
說明 | 明確規定了每個目錄重寫的基準URL。 |
語法 | AllowOverride All|None|directive-type [directive-type] ... |
默認值 | AllowOverride All |
使用環境 | server config, virtual host, directory |
這個指令聲明了在分布式.htaccess文件里的指令是否可以覆蓋父級別的httpd.conf中的指令。在ISAPI_Rewrite的使用環境中,這個指令實際上控制了特定虛擬主機或者目錄的.htaccess文件的可用或者不可用。目前只支持三個值:All、None和FileInfo。
All和FileInfo使.htaccess文件以及它里面的整個ISAPI_Rewrite目錄可用,None使所有的.htaccess文件以及目錄不可用。這些目錄具有繼承性。這意味著如果你為一些目錄或者虛擬主機指定AllowOverride none,.htaccess文件將對整個子目錄樹不可用。
4.3RewriteEngine指令
說明 | 啟用或禁用運行時Rewrite引擎 |
語法 | RewriteEngine on|off |
默認值 | RewriteEngine off |
使用環境 | server config, virtual host, directory, .htaccess |
啟用或禁用運行時Rewrite。如果你需要禁用ISAPI_Rewrite模塊或者特定的.htaccess文件,可以使用RewriteEngine off指令而不是注釋掉重寫規則。
警告:由于支持查詢的號碼,我們不得不使rewrite引擎在默認情況下打開,相較之Apache rewrite引擎在默認情況下關閉。請記住這個小小的不兼容,始終指定每個配置文件里的重寫引擎的明確地位,無論你需要打開還是關閉。
4.4RewriteRule指令
說明 | 定義URL重寫規則 |
語法 | RewriteRule Pattern Substitution [flags] |
使用環境 | server config, virtual host, directory, .htaccess |
這個指令定義了單個URL重寫操作。它可能在一個配置文件中出現多次,每個實例定義一個重寫URL的規則。RewriteRule指令包含URL匹配模式、替換字符串以及可選的標志設置。
Pattern(模式)是一個用來匹配當前URL的Perl兼容正則表達式。當前的URL可以是原來請求的URL或者已經由優先級高的規則替改過的URL。網址從不包含協議或者主機名,從第一個斜杠字符開始(只對httpd.conf文件適用)。而且當前網址還因不同的應用配置級別而異。對于目錄級配置(.htaccess文件),結尾的斜線和配置文件的目錄名,會在匹配時被從URL中忽略掉。在創建正則表達式時,請閱讀這個文檔的正則表達式語法部分來得到更多的信息。
"!"字符打頭的模式將否定整個表達式。否定模式不能產生子匹配,所以你不能使用$N的替代引用。
Substitution(替換)字符串指定了模式是匹配時生成URL的格式字符串。除了純文本,它可以包括這些特殊字符。
? 對Rewrite模式的回溯引用$N
? 對Rewrite模式的回溯引用%N
? 服務器變量%{VARNAME}
? 條件格式模式?Ntrue_string:false_string
? 分組括號“(”和“)”
替換字符串將所有的字符視為字面值,除了
、'/'、'('、')','?',':'和'/'。為了字面化地讀出特殊字符,它定義了用"/"引導的轉義字符。下面的特殊字符是允許的。AccessFileName指令說明設置分布式配置文件的名稱語法AccessFileName filename [filen..amp; | 輸出匹配的整個表達式。 |
ISAPI_Rewrite3 參數說明
作者:佚名 時間:2013-03-22 分享到:
| 輸出上一個的匹配結束到當前匹配的開始之間的文本(如果之前沒有找到匹配串,則輸出從開頭到當前匹配的開始之間的文本)。 |
| 輸出當前匹配之后跟著的所有文字。 |
$ | 輸出字面值$ |
/a | 信號鈴字符 |
/f | 表單反饋字符 |
/n | 新行字符 |
/r | 回車符 |
/t | 制表符 |
/v | 垂直制表符 |
/x | 十六進制字符,比如說/x0D. |
/x{} | 一個可能的Unicode十六進制字符-例如/x{1A0} |
/cx | ASCII的轉義字符x,例如/c @等價于escape-@。 |
/e | The ASCII 轉義字符 |
/dd | 八進制字符常量,例如/10。 |
/l | 導致下一個字符被小寫輸出。 |
/u | 導致下一個字符被大寫輸出。 |
/L | 導致整個后繼字符串被小寫輸出,直到遇到/E。 |
/U | 導致整個后繼字符串被大寫輸出,直到遇到/E。 |
/E | 結束/L或者/U的后續字符串 |
// | 單個反斜杠字符'/' |
RewriteRule從父配置文件開始按照在配置文件中出現的次序應用。每個規則只有在它的Pattern匹配了一個URL而且所有連接條件(RewriteCond)都匹配時才會被應用。在該URL用Substitution完成替換之后,重寫過程還在繼續,一直到配置文件結束或者遇到一個用了任何停止標志的規則。在Substitution中的特殊字符串"-"(短橫)意味著沒有替換,而且當你需要應用該規則并留下的原始的未被染指過的URL時它是很有用的。
此外,這里有一個支持的flag(標志)列表。這些標識可以改變規則的表現。與Apache完全兼容的標志被標記為綠色,不支持的標志被標記為綠色,只在 ISAPI_Rewrite中被支持的標識被標記成黃色。
CU (Case Upper)
把替換字符串改成大寫.
CL (Case Lower)
把替換字符串改成小寫.
chain|C
將當前規則與后一條規則鏈接起來,后一條規則只有在當前規則被匹配的情況下才能被執行。鏈接可以再后續鏈接。
cookie|CO=NAME:VAL:domain[:lifetime[:path]]
設置一個有指定字段的cookies頭,并把它和當前請求的響應一起發送到客戶端。
env|E=VAR:VAL
不支持,在UNIX環境中設置一個環境變量,在Windows系統中無意義。
forbidden|F
發送即時403 FORBIDDEN響應到客戶端,停止這個請求的規則處理以及所有其他的替換處理。
gone|G
發送一個即時401Gone響應到客戶端,停止這個請求的規則處理以及所有其他的替換過程。
handler|H=Content-handler
不支持,為請求明確指定了處理處理。在IIS的世界中這是可以通過重寫請求的文件擴展名來實現。但是沒有從Apache處理到IIS文件擴展名的直接轉換方法。
last|L
停止這里的重寫處理,不再應用當前配置文件中的其它規則。在這種情況下,后代的.htaccess文件依然能被用到。
loop|LP
在一個循環中重復運行當前單個規則直到它的模式以及條件不再被匹配了。循環次數被限定為200免得陷入無限循環。
next|N
從當前配置文件開始處重復運行重寫處理。循環次數被限定為200免得陷入無限循環。
nocase|NC
這個標記使Pattern大小寫不敏感。
noescape|NE
不轉義輸出。在ISAPI_Rewrite默認情況下,在輸出中會把所有的非ANSI字符編碼為十六進制數%xx。
nosubreq|NS
這個標識在ISAPI_Rewrite中與在Apache中含義不同。精確的轉換是不可能的,但這個標志可能仍然是有用的。每當配置文件處理完成之后,URL被重寫了,ISAPI_Rewrite將啟動這個新的URL處理過程(與Apache相同)使它可以應用到另一個配置文件中。此標識意思是該規則只針對初始用戶的請求執行,不針對已被重寫過的請求執行,以防可能出現的循環。ISAPI_Rewrite限定循環重復次數為10。
nounicode|NU
如果設置了NU標記,從Unicode轉換為UTF - 8將不會發生。所有Unicode字符會保持它的%xx格式不變。
O (nOrmalize)
留著用于與ISAPI_Rewrite 2.x兼容。如果使用了RewriteCompatibility2,這個指令在處理之前將URL規范化。規范化包括移除一個URL編碼、錯誤字符,等等。同時URL的規范化將完全移除它的查詢字符串。如果RewriteCompatibility2 沒有被使用,URL按照默認被規范化(就如同它在mod_rewrite中所做的),此標志的含義將反轉。
proxy|P
將結果URL強制內部處理為另一臺服務器上的目標,并即時傳到遠程服務器上,并且,規則處理在這里中斷了。遠程服務器的響應將被傳遞回客戶端。proxy需要您指定完整的URL,由協議、主機名稱等開頭。ISAPI_Rewrite使用ISAPI擴展來處理代理請求。你可以在代理配置章節中閱讀到更多有關于此的內容。
passthrough|PT
不支持或者始終支持。在IIS中結果始終傳遞到下一個處理
qsappend|QSA
追加當前查找串的數據到替換串而不是由一個替換字符串取代它。當你需要在保留原來的參數再添加更多的查詢字符串參數時,可以使用它。
redirect|R [=code]
強制服務器用重定向指令給客戶端發送一個即時響應,提供一個新的接替位置。可以選加前綴http://thishost[:thissport]/從而把URL帶到一個可用的絕對形式。如果沒有給出代碼,將使用一個302響應(暫時性移動)。你可以選擇在3XX系列范圍內指定任何代碼。
skip|S=num
如果當前的規則匹配,強制rewrite引擎跳過后面num個規則。
type|T=MIME-type
強制目標文件的MIME類型轉換成被設定的MIME類型。這能夠被用來根據一些條件設置內容類型。
U (Unmangle log)
無損記錄。記錄它原來請求的網址,而不是被重寫的URL。