Apache 重定向目录

Apache 重定向目录

因此,我尝试将所有页面重定向到文件,但避免重定向任何现有文件或目录。

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

但是,任何目录仍然会被重定向(现有文件没有问题并且可以被找到。)

答案1

您使用 REQUEST_FILENAME 来表示 REQUEST_URI,虽然在某些情况下(例如在虚拟主机上使用时)可以正常工作,但我觉得在这种情况下它已经确定为最终名称。看看是否RewriteCond %{REQUEST_FILENAME} -d有区别,或者只是始终使用 REQUEST_URI。

如果没有,那么,一个选项是重写以将 index.htm/html/php/pl 等添加到末尾,测试每个是否存在,如果存在则完成规则,否则转到最后一步?这就是我能想到的全部。

相关内容