Apache Mod_Rewrite需要保留Path但更改域

时间:2015-06-30 14:28:36

标签: apache .htaccess mod-rewrite redirect

背景

我有一个网站,其中包含其他几个别名域名,以简化和简化我希望所有域名都恢复为我现在宣传的一个域名 -

主要名称:new Date(expires_at * 1000);

加载相同内容但保留自己地址的其他名称:

www.explorerWorld.co.uk

www.exploreElsewhere.co.uk

我所拥有的是,在互联网上,人们的博客和其他地方都有链接到我网站上的特定页面,但这些链接将在这些不同的域中。

我已经在cPanel下更改了域Alises,这仅适用于基本地址,但是例如www.exploitedexplodedexplorers.co.uk的域不会重定向。

问题

我希望这些页面仍可正常工作,但要重定向到主站点 - www.explorerWorld.co.uk - *但保留其文件路径*

所以:www.exploreElsewhere.co.uk/trees.php无可置疑地更改为www.exploreElsewhere.co.uk/plants/trees.php

到目前为止我的htaccess:

www.explorerWorld.co.uk/plants/trees.php

但这似乎在一个无休止的重复循环中起作用,我该如何改进这个htaccess?

我也看过这里,但这不是很有帮助: .htaccess change domain but keep path

2 个答案:

答案 0 :(得分:0)

我发现这个问题的解决方案是使用%{REQUEST_URI}这是给服务器的路径。

(带有来自Arco444的指针)

RewriteCond %{HTTP_HOST} !^(www\.)?exploreworlds\.co\.uk [NC]
RewriteRule ^(.*) http://www.exploreworlds.co.uk/%{REQUEST_URI} [R=301,L]

这会成功重写URL的域部分,强制将别名URL链接重定向到我的基本网站地址+路径

答案 1 :(得分:0)

你的RewriteCond错了。尝试

RewriteCond %{HTTP_HOST} !^www.exploreWorlds\.co\.uk$1 [NC]
RewriteRule ^(.*)$ http://www.exploreWorlds.co.uk/$1 [R=301,L]

代替,或从原始代码段删除tilda