2011-03-11 105 views
2

替換中的特殊字符串-(短劃線)表示不需要替換,並且在需要應用規則時保留原始URL不變。.htaccess中的破折號(' - ')

所以:

RewriteRule ^(somefile|somedir|someotherfile) - [L] 

這告訴mod_rewrite的離開網址不變,並退出處理規則如果請求的子目錄或文件的前綴是那些在替補名單中的一個。 如果所請求的子目錄在列表中,則跳過此之後的所有規則。

我不明白爲什麼我們在這裏需要短跑?爲什麼我們需要不改變原始網址。既然我們說這個規則是[L](最後),如果有任何列表選項是這種情況,爲什麼我們需要-(破折號)?

回答

3

它只是在那裏有一個一致的語法。破折號明確告訴httpd不要重寫任何東西。試想,如果你刪除的破折號什麼httpd會認爲該行:

RewriteRule ^(somefile|somedir|someotherfile) [L] 

括號中的標誌將被解釋爲重寫目標,你會重寫所有匹配的URL來代替[L]