我目前在我的 .htaccess 中使用以下代码:我有 (A|B) 因为我有 A.php、B.php、/A 和 /B,所以我希望 URL 在 /A 时重定向到 A.php叫做。
RewriteEngine On
DirectorySlash Off
RewriteCond %{REQUEST_FILENAME} (A|B)/$
RewriteRule ^(.*)/$ $1
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
然而,随着
DirectorySlash Off
如果没有斜杠,我无法访问我的根目录。例如,如果我有目录/site 下的文件,我可以访问/site/、/site/index 和/site/index.php,但我无法使用/site 访问,因为它给了我403 错误。我在其他 SO 问题上看到,使用 DirectorySlash Off 它会跳过 /site。
有没有办法编写一个规则,使其适用于除根/站点之外的所有文件/目录?如果没有,有没有办法删除涉及 .php 文件的 URL 的尾部斜杠?
我问这个是因为当 DirectorySlash 打开时,我可能会尝试 /site/A?id=824 并且 URL 将变为 /site/A/?id=824。