轉載 .htaccess檔案RewriteRule文法規則

來源:互聯網
上載者:User

標籤:指令   代理   clu   重寫   維護   沒有   有一個   管道符   log   

 # # --位於行首時表示注釋。     [F] —— Forbidden(禁止): 命令伺服器返回 403 Forbidden錯誤給使用者瀏覽器     [L] —— Last rule(最後一條規則): 告訴伺服器在本條規則執行完後停止重寫URL。立即停止重寫操作,並不再應用其他重寫規則。它對應於Perl中的last命令或C語言中的break命令。這個標記用於阻止當前已被重寫的URL被後繼規則再次重寫。例如,使用它可以重寫根路徑的URL(“/”)為實際存在的URL(比如:”/e/www/”)。     [N] —— Next(下一條規則): 告訴伺服器繼續重寫,指導所有重寫指令都執行過。重新執行重寫操作(從第一個規則重新開始)。此時再次進行處理的URL已經不是原始的URL了,而是經最後一個重寫規則處理過的URL。它對應於Perl中的next命令或C語言中的continue命令。此標記可以重新開始重寫操作(立即回到迴圈的開頭)。但是要小心,不要製造死迴圈!     [G] —— Gone(丟失): 命令伺服器返回410 GONE(no longer exists)錯誤訊息     [P] —— Proxy(代理): 告訴伺服器通過mod_proxy模組處理使用者請求     [C] —— Chain(捆綁): 告訴伺服器將當前的規則和前面的規則進行捆綁    “redirect|R [=code]“(強制重新導向)    [R] —— Redirect(重新導向): 命令伺服器發出重新導向訊息,以便使用者瀏覽器發出rewritten/modified(重寫/修改)URL的請求。若Substitution以http://thishost[:thisport]/(使新的URL成為一個URI)開頭,可以強制性執行一個外部重新導向。如果沒有指定code,則產生一個HTTP響應碼302(臨時性移動)。如果需要使用在300-400範圍內的其他響應代碼,只需在此指定即可(或使用下列符號名稱之一:temp(預設), permanent,seeother)。使用它可以把正常化的URL反饋給用戶端,如將”/~”重寫為”/u/”,或始終對/u/user加上斜杠,等等。注意:在使用這個標記時,必須確保該替換欄位是一個有效URL。否則,它會指向一個無效的位置!並且要記住,此標記本身只是對URL加上http://thishost[:thisport]/首碼,重寫操作仍然會繼續進行。通常,你還會希望停止重寫操作而立即重新導向,那麼就還需要使用”L’標記。     [NC] —— No Case(不區分大小寫): 對用戶端請求的URL不區分大小寫。它使Pattern忽略大小寫,也就是在Pattern與當前URL匹配時,”A-Z”和”a-z”沒有區別     [PT] —— Pass Through(允許存取): 讓mod_rewrite模組將重寫的URL傳回給Apache做進一步處理     [OR] —— Or(邏輯或): 用邏輯“或”將兩個運算式串連在一起,如果結果為“真”,則會應用後繼的相關規則     [NE] —— No Escape(禁用轉義): 命令伺服器在輸出時禁用逸出字元標記阻止mod_rewrite對重寫結果應用常規的URI轉義規則。 一般情況下,特殊字元(“%”, “$”,“;”等)會被轉義為等值的十六進位編碼(“%25′, “%24′,“%3B”等)。此標記可以阻止這樣的轉義,以允許百分比符號等符號出現在輸出中,比如:RewriteRule /foo/(.*) /bar?arg=P1\%3d$1 [R,NE] 可以使”/foo/zed轉向到一個安全的請求”/bar?arg=P1=zed”。     [NS] —— No Subrequest(禁用子請求): 如果存在內部子請求,則跳過當前命令。在當前請求是一個內部子請求時,此標記強制重寫引擎跳過該重寫規則。比如,在mod_include試圖搜尋目錄預設檔案(index.xxx)時,Apache會在內部產生子請求。對於子請求,重寫規則不一定有用,而且如果整個規則集都起作用,它甚至可能會引發錯誤。所以,可以用這個標記來排除某些規則。使用原則:如果你為URL添加了CGI指令碼首碼,以強制它們由CGI指令碼處理,但對子請求處理的出錯率(或者資源開銷)很高,在這種情況下,可以使用這個標記。     [QSA] —— Append Query String(新增查詢字串): 命令伺服器在URL末尾新增查詢字串,以維護GET的URL參數.     [S=x] —— Skip(跳過): 如果滿足某指定的條件,則跳過後面第x調規則     [E=variable:value] —— Environmental Variable(環境變數): 命令伺服器將值value賦給變數variable     [T=MIME-type] —— Mime Type(MIME類型): 聲明目標資源所屬的MIME類型。強制目標檔案的MIME類型為MIME-type,可以用來基於某些特定條件強制設定內容類型。比如,下面的指令可以讓.PHP檔案在以.phps副檔名調用的情況下由mod_php按照PHP原始碼的MIME類型(application/x-httpd-php-source)顯示:    RewriteRule ^(.+\.php)s$ $1 [T=application/x-httpd-php-source]     [] —— 匹配一個字元集合,例如[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次。     () —— 用於將Regex分組,滿足第一組Regex的字串會被儲存在變數$1中,以此類推。如果括弧中的不是Regex,例如(perishable)?press 將能夠匹配有或者沒有perishable首碼的press     ^ —— 位於行首。注意:和中括弧中的[^]意義不同。     $ —— 位於行末     ? —— 例如 monzas? 會匹配 monza 或者 monzas,而 mon(za)? 會匹配 mon 或者 monza。又如 x? 會匹配“Null 字元” 或者 一個x     ! —— 邏輯非。例如“!string” 將會匹配除了“string”以外的所有字串     . —— 表示任一字元串     – —— 命令Apache“不要”重寫URL,例如“xxx.domain.com.* – [F]”     + —— 匹配至少一個任一字元,例如G+匹配以G開頭、並且後面至少有一個字元的字串     * —— 匹配零個或多個字元,例如“.*”匹配任一字元串     | —— 邏輯“或”,與[OR]不同的是,它只匹配字串,例如(x|y)匹配x或者y     \ —— 逸出字元。可以轉義左括弧( 尖字元^ 貨幣符號$ 驚嘆號! 點. 星號* 管道符號| 右括弧) 等     \. —— 轉義為點字元(點字元在Regex中可以匹配任一字元)     /* —— 零個或多個正斜杠     .* —— 零個或多個任一字元(即,匹配任一字元串,包括Null 字元)     ^$ —— 匹配“Null 字元”、“空行”     ^.*$ —— 匹配任一字元串(僅限一行)     [^/.] —— 匹配既非“正斜杠”也不是“點”的任一字元     [^/.]+ —— 匹配第一個字元既非“正斜杠”也不是“點”,後繼字元可以是“正斜杠”或者“點”的字串     http:// —— 匹配“http://”     ^domain.* —— 匹配以“domain”開始的字串     ^domain\.com$ —— 僅匹配“domain.com”     -d —— 測試字串是否是已存在的目錄     -f —— 測試字串是否是已存在的檔案     -s —— 測試字串所指檔案是否有“非零”值

  

轉載 .htaccess檔案RewriteRule文法規則

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.