2013-08-26 51 views
0

使用$ 1爲例阿帕奇重寫:我不明白這的RewriteCond

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond $1 !^(index\.php) 
RewriteRule ^(.*)$ /index.php/$1 [L] 

我不能undertand $ 1的含義中的RewriteCond。

如果$ 1指定爲RewriteRule的(。*),那麼我們可以在RewriteCond中像這樣使用?

回答

0

$1對應於您的RewriteRule中的第一個匹配組。這通常是爲了防止無限循環(可怕的Apache內部500錯誤)。

PS:這個條件在這裏可能沒有必要,因爲你已經有RewriteCond %{REQUEST_FILENAME} !-f了。

+0

使用捕獲組引用將不會阻止無限循環,任何人通常都會使用它 - 因爲此目的是錯誤的。 – AD7six