2012-07-26 30 views
2

我正在重建一箇舊網站,它有很多文件,這些文件已被移到服務器上更合適的目錄中。很顯然,Google對這些網頁的所有網址都會返回404,因爲它們已經不在了。但我希望Google(和其他人)知道這些網頁仍然存在,並且它們存在於哪個目錄中。如何在網站重構後爲許多資源返回301重定向?

但是,我們如何爲許多不同的頁面做到這一點?

+2

現在是302;)尼斯稱號;):P – 2012-07-26 09:38:26

+0

和未來的你的問題,如果我是U,I」 d將所有這些舊鏈接重定向到顯示新目錄位置的頁面。 – 2012-07-26 09:41:32

+0

你有什麼服務器或什麼軟件? Bhuvan Rikka給你的答案很少,但你可能會更精確一些。 – Arsen7 2012-07-26 10:13:05

回答

2

您必須將舊鏈接重定向到新域。這是你如何做到的。

使用PHP:

<? 
Header("HTTP/1.1 301 Moved Permanently"); 
Header("Location: http://www.new-url.com"); 
?> 

使用asp.net:

<script runat="server"> 
private void Page_Load(object sender, System.EventArgs e) 
{ 
Response.Status = "301 Moved Permanently"; 
Response.AddHeader("Location","http://www.new-url.com"); 
} 
</script> 

使用ROR:

def old_action 
headers["Status"] = "301 Moved Permanently" 
redirect_to "http://www.new-url.com/" 
end 

使用htaccess

使用下面的代碼創建一個.htaccess文件,它將確保您的舊域的所有目錄和頁面將被正確重定向到您的新域。 .htaccess文件需要被放置在你的舊網站的根目錄下(即在您的索引文件放在同一個目錄下)

Options +FollowSymLinks 
RewriteEngine on 
RewriteRule (.*) http://www.newdomain.com/$1 [R=301,L] 

請更換www.newdomain.com在上面的代碼與您的實際域名。

除了重定向我建議你聯繫每個反向鏈接網站修改他們的反向鏈接指向你的新網站。

注:此重定向的.htaccess方法僅適用於具有阿帕奇國防部重寫的Linux服務器爲模啓用。

參考this更多的方法

1

你運行任何類型的服務器端請求處理(即PHP,ASP(.NET),爪哇,紅寶石等)?如果是這樣,你可以創建一個包含舊位置和新的等價物的查找字典。檢查所有傳入的請求是否在該字典中,並返回適當的響應。

實例ASP.NET(這正好Globabl.asax):

Private redirectedResourceList As New Dictionary(Of String, String) From { 
    {"/files/myfile.txt", "/newfiles/myfile.txt"}, 
    {"/files/myfile2.txt", "/newfiles/myfile2.txt"} 
} 

Sub Application_BeginRequest(ByVal sender As Object, ByVal e As EventArgs) 
    If redirectedResourceList.ContainsKey(HttpContext.Current.Request.Path) Then 
     Response.StatusCode = 301 
     Response.AddHeader("Location", redirectedResourceList(HttpContext.Current.Request.Path)) 
     Response.End() 
    End If 
End Sub