htaccess 正則規則整理(轉)

爲了方便 htaccess 編寫正則,這裏整理了一下 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 —— 測試字符串所指文件是否有「非零」值
相關文章
相關標籤/搜索