我有一个的mod_rewrite规则是这样的: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。
为什么它这样做,是否有任何方法来防止它(除了没有这样的目录撒谎)?
移到serverfault? – QuantumMechanic 2011-05-06 05:22:39
@QuantumMechanic:我认为首先将它发布在那里,但SO有3716个标记为mod-rewrite的问题,而SF只有578个。当然,受欢迎程度并没有使事情正确,但根据我的经验,重写规则是问题的程序员,而不是系统管理员。 – 2011-05-06 05:30:03