这是我的mod_rewrite规则:
RewriteEngine On
RewriteRule ^([^./]+)/?$ index.php?id=$1 [L]
这会将http://www.mysite.com/abc/
重写为http://www.mysite.com/index.php?id=abc
。但是,我也有一个子目录,我不希望它被重写。因此,如果存在目录,则应该只使用该目录。如果不是,它将使用重写。怎么办呢?
答案 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