我有一个像这样的mod_rewrite规则:
RewriteRule ^(alice)/?$ bob.php?page=$1 [L]
如果我去http://localhost/alice/,它会读取bob.php(如预期的那样)。如果我转到http://localhost/alice(没有结束斜杠),它会读取bob.php(再次,如预期的那样)。
如果我在htdocs中创建一个名为“alice”的目录,并转到http://localhost/alice/,它会读取bob.php。但是,如果我转到http://localhost/alice,它现在会重定向到http://localhost/alice/?page=alice。它仍然读取bob.php(这是我想要的),但我宁愿不改变这样的URL。
为什么会这样做,有没有办法阻止它(除了没有这些目录之外)?
答案 0 :(得分:0)
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(alice)/?$ bob.php?page=$1 [L]
答案 1 :(得分:0)
如果alice目录不存在,/ alice将不会被重定向(但/ alice /将是)。如果您知道目录是否存在,则可以选择是否使用/或/?.