使用.htaccess从一个目录重写登录页面

时间:2013-02-25 20:42:42

标签: apache .htaccess mod-rewrite url-rewriting

我的网站根目录中有大约30个目标网页目录,为了整洁,我想将所有文件移动到/登录目录。我希望着陆页的所有公共虚荣URL仍然可用,而不是在地址栏中显示“登陆”目录。

例如,我想要 www.site.com/happiness

显示存储在my / landing / happiness目录中的内容,但我希望地址栏中的网址仍显示www.site.com/happiness。

我现在在.htaccess中拥有的是

RewriteRule ^happiness(.*)?$ landing/happiness$1 [NC,L,QSA]

这显示内容正常,但会重写地址栏中的URL并显示“登陆”目录。如何在.htaccess中重写,以便提供的文件位于登录目录中,但地址栏显示原始的虚URL?

感谢您的帮助!

1 个答案:

答案 0 :(得分:-1)

当您输入没有尾部斜杠的目录网址时,会发生这种情况,例如/happiness/happiness/subdir。在这种情况下,mod_dir会使用一个尾部斜杠向网址发出重定向。

您可以通过始终向内部重定向添加尾部斜杠

来规避这一点
RewriteRule ^happiness(?:/.*)?$ landing/$0/ [NC,L,QSA]

这样做的缺点是,即使它是一些PHP文件,你最后总是有一个斜杠。