2011-03-11 42 views
1
RewriteRule ^(dir1|file1) - [L] 

如果此規則是案例,則其他重寫規則不適用。- 在重寫規則上意味着什麼?

由於我們在.htaccess上下文中,只有[L]將是無用的。因此,我們需要兩件事:

要有 - 符號。

要在我們的.htaccess文件上的所有其他RewriteRules之前有此規則。

如果以上假設是正確的和精確的,我想問一下:

什麼的-意思,它有什麼做此背景下?

非常感謝。

回答

3

docs有這樣的信息:

- (破折號)

的破折號表示沒有取代應當執行(現有的路徑是通過原封不動傳遞)。當需要在不改變路徑的情況下應用標誌(見下文)時使用這個標誌。

+0

@Dave謝謝。我仍然沒有形成圓點。爲什麼會在.htaccess上下文中啓用真正的[L]用法?換句話說,爲什麼這種短跑能做一些事情,單靠一個人就可以做到。由於我不是一個精通英語的讀者,因此我不清楚手冊的解釋。 :( – MEM 2011-03-11 12:15:42

+1

重寫規則爲服務器定義了一種改變URL的方法,當它與一個URL匹配模式('^(dir1 | file1)')時,它會查看規則的下一部分,應該改變URL,'-'只是告訴服務器不要改變URL,'[L]'(對於「Last」)會告訴服務器不要處理更多的規則 – 2011-03-11 12:37:44

+1

@Dave Child:Hmm .. 。我想我正在閱讀很多......'rewriteRule ab [L] rewriteRule bc'上的RewriteEngine「大多數人會認爲當請求/ a時,內部請求的文件將是/ b,因爲[L]標誌。不是,最後一個請求的文件實際上是/ c。爲了理解爲什麼,你需要了解mod_rewrite如何在每個目錄的上下文中處理請求。「來源:http://www.colder.ch/news /01-26-2007/24/truth-about-the-last-mod_.html – MEM 2011-03-11 12:49:52