2012-09-08 81 views
0

htaccess的现代重写URL始终重定向到新的URL在Apache

我有这个网址:

mydomain.com/old.html

我希望它被改写为:

mydomain.com/new.html

但我也想mydomain.com/old.html总是重定向到mydomain.com/new.html

我试过如下:

RewriteRule ^/new.html /old.html [R=301,L,PT] 

但它不工作。

回答

0

删除前导斜杠(或使其可选),因为它是从URI在一个htaccess文件应用规则时剥离:

RewriteRule ^/?new.html /old.html [R=301,L,PT] 

这将需要与其他重写规则一起工作,让一切一个模块(mod_rewrite的)内发生的,但如果你不需要mod_rewrite的,你可以依靠,而不是mod_alias中(除去mod_rewrite的重定向):

Redirect 301 /old.html http://www.yoursite.com/new.html 

但是,这将重定向东西,如:/old.html/blahblahhttp://www.yoursite.com/new.html/blahblah如果你不想这样,使用:

RedirectMatch 301 ^/old.html$ http://www.yoursite.com/new.html 
0
Redirect 301 /old.html http://www.yoursite.com/new.html 

应该工作。

+0

但是,这并不与重写工作:网页没有正确重定向 –

+0

您能得到什么?白页?重定向循环? 404? – 2012-09-08 12:59:38