我有这个在我的.htaccess:RewriteRule不匹配?
RewriteEngine On
RewriteBase/
RewriteRule ^url/(.*)$ url.php?url=$1 [L]
RewriteRule ^(.*)$ index.php?url=$1 [L,QSA]
为什么http://mydomain.ext/url/http://www.google.com/
不匹配的第一条规则,但第二???
编辑:它似乎工作时,我注释掉最后一行,但我当然不能这样做。这是怎么回事?
EDIT2:如果我改成这样它的工作原理:
RewriteEngine On
RewriteBase/
RewriteRule ^url/(.*)$ url.php?url=$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?url=$1 [L,QSA]
任何人都可以解释为什么预期之前的版本没有工作?
谢谢,正如我在编辑中提到的那样添加`RewriteCond%{REQUEST_FILENAME}!-f RewriteCond%{REQUEST_FILENAME}!-d`在最后一行似乎具有相同的效果之前,但您的解决方案更短。 – Alfonso 2010-11-30 14:05:54