![Apache 重定向目录](https://linux22.com/image/534707/Apache%20%E9%87%8D%E5%AE%9A%E5%90%91%E7%9B%AE%E5%BD%95.png)
因此,我尝试将所有页面重定向到文件,但避免重定向任何现有文件或目录。
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 等添加到末尾,测试每个是否存在,如果存在则完成规则,否则转到最后一步?这就是我能想到的全部。