我在.htaccess中有這條規則。RewriteRule的' - '(減號)是什麼?
RewriteRule ^(.+)\.([0-9a-zA-Z]+)$ - [L,NC]
我不「不懂什麼是 」 - 「(減號)的,只是開始[L,NC]
$ - [L,NC]
我在.htaccess中有這條規則。RewriteRule的' - '(減號)是什麼?
RewriteRule ^(.+)\.([0-9a-zA-Z]+)$ - [L,NC]
我不「不懂什麼是 」 - 「(減號)的,只是開始[L,NC]
$ - [L,NC]
破折號表示沒有取代應當執行(現有的路徑是通過原封不動傳遞)。這是用於當標記(見下文),需要在不改變路徑來施加。 (http://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewriterule)
與L
標誌相結合表示應該在不進行轉換的情況下處理這些URL,並且不應應用其他規則。
- (劃線) 破折號表示沒有取代應當執行(現有的路徑是通過原封不動傳遞)。當需要在不改變路徑的情況下應用標誌(見下文)時使用這個標誌。
實際上,它表示在輸入URL模式匹配時不採取任何措施。接下來,[L]
確保不會執行後續匹配,因此輸入URL將「按原樣」使用。這可以用來免除一個特定的模式被重寫,否則它將被更一般的模式匹配。
您不會看到過於頻繁的規則,因爲通常可以通過重新排序RewriteRule
或通過修改更一般的匹配模式來達到相同的結果,因此它不匹配免除的規則開始。
是 - 和[L]冗餘:是[L]足夠了嗎? – yarek
@yarek不,它不是多餘的,因爲格式是'RewriteRule inputURL outputURL [flag,flag,flag]'。在這種情況下,'-'被用作no-op來代替'ouputURL',所以它在語法上很重要。 –
而不是_「如果輸入URL匹配,重寫爲輸出URL,停止處理」_,它讀作_「如果輸入URL匹配,請勿修改它,停止處理」_ –