有規則:爲什麼mod_rewrite的過程中,規則[L]標誌後
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.+) dir/index.php?$1 [L]
RewriteRule dir/index\.php.* - [F]
爲什麼最後的規則處理,併爲所有請求返回紫禁城?
我需要,如果沒有找到文件或目錄,那麼不應該處理下一個規則。
下一個例子是不是爲我工作,以及:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .? - [S=1]
RewriteRule dir/index\.php.* - [F]
RewriteRule (.+) dir/index.php?$1
它仍然會返回禁止所有請求。
我想我有一個答案。但最後一行應該怎麼做? –
[L]僅適用於當前的迭代。重寫的url,被認爲是相同的重寫過程,導致禁止重寫。 Apache繼續應用規則,直到url不再更改。 – Gerben
@Salman A,最後一個字符串假設限制直接訪問UFL處理程序。 – Mansoor