mod_rewrite现有目录

时间:2012-03-22 05:57:57

标签: mod-rewrite

这是我的mod_rewrite规则:

RewriteEngine On
RewriteRule ^([^./]+)/?$ index.php?id=$1 [L]

这会将http://www.mysite.com/abc/重写为http://www.mysite.com/index.php?id=abc。但是,我也有一个子目录,我不希望它被重写。因此,如果存在目录,则应该只使用该目录。如果不是,它将使用重写。怎么办呢?

2 个答案:

答案 0 :(得分:2)

简单的馅饼:

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]

嘿,顺便说一下我花了2s才找到答案:2s =输入“rewriterule文件不存在”的时间

答案 1 :(得分:0)

不要忘记在RewriteEngine On

下面加上这个
RewriteBase /yourdirectory