位置栏不显示重定向的URL

时间:2009-12-31 09:29:12

标签: apache mod-rewrite httpd.conf

这是我http://old.example.com httpd.conf 文件:

RewriteEngine on
RewriteBase /
RewriteRule ^login$  http://another.example.com/login   [L]

问题是虽然我可以重定向到http://another.example.com/login,但位置栏仍然显示http://old.example.com/login

知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:6)

如果您在server or virtual host configuration中使用mod_rewrite,则始终需要在模式中指定完整的URL路径:

RewriteRule ^/login$ http://another.example.com/login [L,R]

只有在.htaccess文件中的每个目录上下文中使用时,您才需要指定不带上下文路径前缀的相对URL路径。

还可以通过设置R flag

来尝试显式重定向
RewriteRule ^/login$ http://another.example.com/login [L,R]

通过它,您还可以指定状态代码:

RewriteRule ^/login$ http://another.example.com/login [L,R=301]