Mod rewrite mod_重写现有目录

Mod rewrite mod_重写现有目录,mod-rewrite,Mod Rewrite,这是我的mod_重写规则: RewriteEngine On RewriteRule ^([^./]+)/?$ index.php?id=$1 [L] 这将重写http://www.mysite.com/abc/至http://www.mysite.com/index.php?id=abc。然而,我也有一个子目录在那里,我不希望它被重写。因此,如果存在一个目录,它应该只使用该目录。如果没有,它将使用重写。如何做到这一点?非常简单: RewriteEngine On # Make sure it

这是我的mod_重写规则:

RewriteEngine On
RewriteRule ^([^./]+)/?$ index.php?id=$1 [L]
这将重写
http://www.mysite.com/abc/
http://www.mysite.com/index.php?id=abc
。然而,我也有一个子目录在那里,我不希望它被重写。因此,如果存在一个目录,它应该只使用该目录。如果没有,它将使用重写。如何做到这一点?

非常简单:

RewriteEngine On
# Make sure it's not a real directory
RewriteCond %{REQUEST_FILENAME} !-d
# Make sure it's not a real file
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^./]+)/?$ index.php?id=$1 [L]

嘿,顺便说一句,我花了2秒才找到答案:2秒=键入“重写规则文件不存在”的时间。

不要忘记在下面的重写引擎中包含此内容

RewriteBase /yourdirectory