好的,这应该很简单,但我遇到了相当多的麻烦。基本上,我正在尝试将http://server.com/
重写为http://server.com/homepage
,但我只希望它在内部重写 - 用户永远不会看到/homepage
网址。我试过这个:
RewriteRule ^$ /homepage [L]
它与URL正确匹配,但它会发出301重定向而不是仅在内部处理它 - 用户被重定向到http://server.com/homepage
。我该如何改变?
我觉得这很简单,而且我完全错过了,所以希望有人可以提供帮助!
答案 0 :(得分:3)
假设homepage
是一个目录,请尝试这样做:
RewriteRule ^$ /homepage/
我完全忘记了这里发生了什么,所以希望能解决问题(这对我有用),然后为了完整起见,我会更新我的答案并解释正在发生的事情。
修改:好吧,它是mod_dir
及其DirectorySlash
选项,试图清除网址丢失的尾部斜杠。如果您没有尾部斜杠,则不会调用DirectoryIndex
处理程序,并且mod_rewrite
只是在此处理发生之前重写URL 和 DirectorySlash
默认设置为On
,mod_dir
执行重定向到斜杠完成的网址。