2011-07-08 217 views
3

我有一個小小的困境。htaccess 301重定向url

我一直在做一個項目近一年,現在有一箇舊的域名。不知道Google如何在舊域名下爲整個網站建立索引,這讓我很擔心。我想把網站放在我的新域名上,我認爲做301是前進的方向。我需要在每個動態頁面上執行此操作。好的是頁面結構是一樣的。

任何有關如何做到這一點的最佳途徑的建議將受到大量讚賞。

回答

4

這一切從olddomain.com重定向到newdomain.com:

RewriteEngine on 
RewriteCond %{HTTP_HOST} ^(www\.)?olddomain\.com$ 
RewriteRule ^(.*)$ http://www.newdomain.com/$1 [R=301,QSA,L] 

你可以把mod_rewrite的代碼到你的OLDDOMAIN的.htaccess。

6

最好的方法是創建一個.htaccess文件,如果你還沒有,並將其粘貼在你的HTML文件夾。

<IfModule mod_rewrite.c> 
    RewriteEngine on 

    RewriteRule ^old/page new/page [R=301,L] #can copy and paste this as many times as needed 

</IFModule> 
1

有一種方法可以通過php(.htaccess是最好的)來實現,但是這對我來說一次或兩次派上用場。

<?php 
//this can be set however you need it to be 
$dynamic_redirect = "http://foo.com".$your_variable; 
header("HTTP/1.1 301 Moved Permanently"); 
header("Location: ".$dynamic_redirect); 
exit(); 
?> 
2

如果您的主機所不支持mod_rewrite的(是的,有這樣的託管公司),或者它並不適用於一些奇怪的和未知的原因,工作,去一個更簡單的和廣泛使用的指令:RedirectRedirectMatch

把這樣一行到您的.htaccess老域名:

Redirect 301/http://www.newdomain.com/ 

上面一行將從舊域名重定向ALL URLss進入新的領域起訴301碼(永久重定向),這是從SEO的角度來看是正確的。

如果您需要重定向這樣的單頁或將它指向一個特定的新位置,使用這樣的規則(同上只是指定確切網址):

Redirect 301 /help-shipping.html http://www.newdomain.com/help/shipping.php 

Apache的mod_rewrite的手冊有一個頁面: When NOT to use mod_rewrite。這裏列出了這個特定的場景(重定向是更輕,RewriteRule就資源而言,這可能是非常繁忙的服務器上的問題)。