2013-08-26 47 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