使用htaccess将旧站点重定向到新站点

时间:2011-08-17 11:31:25

标签: apache .htaccess

我认为这是一个奇怪的问题。

我为客户设计了一个新网站,他希望在其他地方托管3个旧网站指向他的新网站。

他的托管公司所做的是将3个旧网站中的每个网站的A记录更改为指向新网站的IP地址。

他们建议我可以通过修改新网站上的htaccess文件来获得新网站的3个旧网址...

...但我不清楚这是如何工作的。我尝试过使用301重定向(下面的代码),但它似乎不起作用。

有人可以帮忙吗?

我试过的代码:

Options +FollowSymlinks -MultiViews
RewriteEngine on

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

只是为了澄清:

1)htaccess在新网站上,托管公司只是简单地将旧网站的A记录更改为指向新网站的IP地址。

2)我没有为任何旧网站设置托管,所以没有index.php等进行修改。

3)重定向将位于新网站的h​​taccess中,因此需要将每个旧网址标识为重定向到新网址。

甚至可以这样做吗?

3 个答案:

答案 0 :(得分:2)

如果你使用apache:

RedirectMatch 301 ^.*$ http://www.newdomain.co.uk/

我有点生疏,但我认为就是这样。 这是文档的链接,可能会有所帮助:

http://httpd.apache.org/docs/2.0/misc/rewriteguide.html

答案 1 :(得分:1)

使用

制作index.php
<?php
header('Location: http://www.newsite.com/');
?>

最快的方法;)

答案 2 :(得分:1)

看起来正确,只要旧网站和新网站中网址的路径部分相同即可。我只会将QSA标志添加到重写规则中。正则表达式也有点矫枉过正,您可以使用:

RewriteCond %{HTTP_HOST} =www.OldSite1.co.uk [NC]

确保正在读取.htaccess文件(即你没有AllowOverride None),或者 - 更好 - 将重写规则放在主服务器配置中,而不是放在.htaccess文件中