Apacheredirect目录

所以,我试图将任何页面redirect到一个文件,但是避免redirect任何现有的文件或目录。

RewriteEngine On RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} -d RewriteRule ^(.+)$ $1 [L] RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-f RewriteRule ^(.+)$ /index.php?page=$1 [QSA] 

但是,任何目录仍然被redirect(现有的文件很好,可以find)。

你使用的是REQUEST_FILENAME来表示REQUEST_URI,虽然在某些情况下(比如在虚拟主机上使用的时候)有logging,但我有一种感觉,在这种情况下,它已经被确定为最终的名字。 看看RewriteCond %{REQUEST_FILENAME} -d是否RewriteCond %{REQUEST_FILENAME} -d ,或者只是总是使用REQUEST_URI。

如果没有,那么,一个选项是重写将index.htm / html / php / pl等添加到最后,testing每个存在和最终的规则如果是的话,否则进入最后一步? 这就是我能想到的一切。