rewriterule如何处理没有结束斜线

时间:2011-10-28 12:15:28

标签: .htaccess mod-rewrite

我尝试将进入目录的任何内容重定向到另一个目录。我使用的rewriterule命令是:

RewriteRule ^VirtualDirectory(.*)$ GENS/RealDirectory$1 [L,NC]

问题是我想要重写一个没有反斜杠到VirtualDirectory的查询,就像查询是针对VirtualDirectory /

一样

我得到的行为是:

查询VirtualDirectory /工作得很好而没有用户注意到 对VirtualDirectory的查询工作得很好,但brwoser中显示的网址是:GENS / RealDirectory /

我尝试了很多东西,但我无法得到我想要的行为。

如果我添加规则

RewriteRule ^VirtualDirectory$ GENS/RealDirectory/ [L,NC]

处理该特定情况,除了在VirtualDirectory

之前将页面的所有资源都重写到该文件夹​​之外,它的效果很好

1 个答案:

答案 0 :(得分:0)

发生的事情是内部重写发生时没有斜杠,然后mod_dir接管并将浏览器重定向到同一个URL,但带有斜杠。您可以使用.htaccess文件中的DirectorySlash Off关闭mod_dir。如果您希望始终使用尾部斜杠,请尝试将规则更改为:

RewriteRule ^VirtualDirectory/?(.*)$ GENS/RealDirectory/$1 [L,NC]