.htaccess:正則表達式、重定向代碼

# 位於行首時表示註釋。
[F] Forbidden(禁止): 命令服務器返回 403 Forbidden錯誤給用戶瀏覽器
[L] Last rule(最後一條規則): 告訴服務器在本條規則執行完後停止重寫URL
[N] Next(下一條規則): 告訴服務器繼續重寫,指導所有重寫指令都執行過
[G] Gone(丟失): 命令服務器返回410 GONE(no longer exists)錯誤消息
[P] Proxy(代理): 告訴服務器通過mod_proxy模塊處理用戶請求
[C] Chain(捆綁): 告訴服務器將當前的規則和前面的規則進行捆綁
[R] Redirect(重定向): 命令服務器發出重定向消息,以便用戶瀏覽器發出rewritten/modified(重寫/修改)URL的請求
[NC] No Case(不區分大小寫): 對客戶端請求的URL不區分大小寫
[PT] Pass Through(放行): 讓mod_rewrite模塊將重寫的URL傳回給Apache做進一步處理
[OR] Or(邏輯或): 用邏輯“或”將兩個表達式連接在一起,如果結果爲“真”,則會應用後繼的相關規則
[NE] No Escape(禁用轉義): 命令服務器在輸出時禁用轉義字符
[NS] No Subrequest(禁用子請求): 如果存在內部子請求,則跳過當前命令
[QSA] Append Query String(追加查詢字符串): 命令服務器在URL末尾追加查詢字符串
[S=x] Skip(跳過): 如果滿足某指定的條件,則跳過後面第x調規則
[E=variable:value] Environmental Variable(環境變量): 命令服務器將值value賦給變量variable
[T=MIME-type] Mime Type(MIME類型): 聲明目標資源所屬的MIME類型
[] 匹配一個字符集合,例如[xyz]可以匹配x, y或者z
[]+ 例如[xyz]+會以任何順序、次數匹配x,y,z的出現
[^] 字符^表示字符集的補集。[^xyz]將匹配沒有x,y或者z的字符串
[a-z] 連字符(-)表示匹配從字母a到字母z的所有字符串
a{n} 指定字母a出現的次數爲n次,滿足該條件時匹配。例如x{3}僅與xxx匹配
a{n,} 指定字母a出現的次數至少爲n次,例如x{3,}可以與xxx或者xxxx等匹配
a{n,m} 指定a出現的次數至少爲n到m次。
() 用於將正則表達式分組,滿足第一組正則表達式的字符串會被存儲在變量$1中,以此類推。如果括號中的不是正則表達式,例如(perishable)?press 將能夠匹配有或者沒有perishable前綴的press
^ 位於行首。注意:和中括號中的[^]意義不同。
$ 位於行末
? 例如 monzas? 會匹配 monza 或者 monzas,而 mon(za)? 會匹配 mon 或者 monza。又如 x? 會匹配“空字符” 或者 一個x
! 邏輯非。例如“!string” 將會匹配除了“string”以外的所有字符串
. 表示任意字符串
- 命令Apache“不要”重寫URL,例如“xxx.domain.com.* – [F]”
+ 匹配至少一個任意字符,例如G+匹配以G開頭、並且後面至少有一個字符的字符串
* 匹配零個或多個字符,例如“.*”匹配任意字符串
| 邏輯“或”,與[OR]不同的是,它只匹配字符串,例如(x|y)匹配x或者y
\ 轉義字符。可以轉義左括號( 尖字符^ 美元符號$ 感嘆號! 點. 星號* 管道符號| 右括號) 等
\. 轉義爲點字符(點字符在正則表達式中可以匹配任意字符)
/* 零個或多個正斜槓
.* 零個或多個任意字符(即,匹配任意字符串,包括空字符)
^$ 匹配“空字符”、“空行”
^.*$ 匹配任意字符串(僅限一行)
[^/.] 匹配既非“正斜槓”也不是“點”的任意字符
[^/.]+ 匹配第一個字符既非“正斜槓”也不是“點”,後繼字符可以是“正斜槓”或者“點”的字符串
http:// 匹配“http://”
^domain.* 匹配以“domain”開始的字符串
^domain\.com$ 僅匹配“domain.com”
-d 測試字符串是否是已存在的目錄
-f 測試字符串是否是已存在的文件
-s 測試字符串所指文件是否有“非零”值
HTTP協議重定向編碼
301 – Moved Permanently
302 – Moved Temporarily
403 – Forbidden
404 – Not Found
410 – Gone

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