如何使301永久redirect从旧域到新域与.htaccess?

我已经find了一些不同的解决scheme,应该写在.htaccess文件中,但由于某些原因,它们不能很好地工作。

我想redirect从旧网站的所有内容到新网站 – www.oldsite.com/first/articleredirect到www.newsite.com/first/article

等等。 我听说,这是永久redirect的方式,当将网站从一个域名转移到另一个域名时,search引擎不会对内容进行双倍化处理。

所以,如果任何人都可以提供工作代码,那就太好了。 解释为什么这将起作用,其中的意思是在真棒类别。

thanx一堆。

PS,我已经mod_rewrite已启用。

强烈build议John Gruber 使用.htaccessredirect来标准化Web服务器地址 。 “获得”WWW“PREFIXES”部分给出了一个简单的例子,你需要简单的重写以及一个清晰的解释。

在他的例子中,你可以分别用www\.oldsite\.com代替www\.daringfireball\.netwww.newsite.com作为daringfireball.net ,给你如下:

 RewriteEngine on RewriteBase / RewriteCond %{HTTP_HOST} ^www\.oldsite\.com$ RewriteRule (.*) http://www.newsite.com/$1 [R=Permanent] 

或者,在“从.net到'.NET'redirect”一节中,他解释了如何使用mod_alias来完成你所要求的function,如下所示:

 RedirectMatch permanent (.*) http://www.newsite.com$1 

他的文章是对这两种方法的一个很好的概述,并给你select最好的方法的知识(显然,mod_alias是较短的实现,但是从我的angular度来看,mod_rewrite往往是更加灵活的)。 他还链接到Dave Child的优秀mod_rewrite备忘单 。

用下面给出的代码创build一个.htaccess文件。 它将确保您旧域中的所有目录和页面将正确redirect到您的新域。 .htaccess文件需要放在旧网站的根目录下(即放置索引文件的目录)

 Options +FollowSymLinks # RewriteEngine on - You have this enabled already, so this is not required. RewriteRule (.*) http://www.newdomain.com/$1 [R=301,L] 

请用上面的代码replace您的实际域名www.newdomain.com。