2012-07-26 33 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