2011-08-19 33 views
0

我将再次解释示例代码..我们有一个ASP站点。它有太多的内容,你可以看看这个ASP网站here for sample link1。现在我们必须将这个站点改为ASP.NET,你可以看看这个ASP.NET示例页面here for sample link2。我们的域名不会改变。但我们的旧网址会改变,你可以看到link1和link2的区别...问题是谷歌机器人索引我们的旧网址和机器人会再次来,但不会找到我们的旧网址,所以它会给我们不好的观点... ...怎么可以我们解决了这个问题?再次将ASP与ASP.NET的URL问题

我会给范例代码,asp.net SEO ...也许它可以帮助你这个问题..

的Global.asax:

string path= System.IO.Path.GetFileName(Request.FilePath).ToLower(); 

else if (f.GlobalasaxLink("select ID,url from Tbl_Contents", path, "url", "content") != "") 
     { 
      Context.RewritePath(f.GlobalasaxLink("select ID,url from Tbl_Contents", path, "url", "content"), false); 
     } 

在ASP.NET我们节省对数据库中的所有内容的网址..

F级和功能GlobalasaxLink:

public string GlobalasaxLink(string SQL,string link,string field,string url) 
{ 
    string result= ""; 
    SqlConnection con= new SqlConnection(connect()); 
    con.Open(); 
    SqlCommand cmd= new SqlCommand(SQL, con); 
    SqlDataReader dr = cmd.ExecuteReader(); 
    while (dr.Read()) 
    { 
     if (dr.HasRows) 
     { 
      if (dr[field].ToString() == link) 
      { 
       result= url+".aspx?ID=" + dr["ID"].ToString(); 
      } 
     } 
    } 
    dr.Dispose(); 
    con.Close(); 
    return result; 
} 

content.aspx.cs:

string id = Request.QueryString["ID"]; 
      var content= from item in data.Tbl_Contents 
       where item.ID == Int32.Parse(id) 
       select item; 
    foreach (var item in content) 
    { 
     lblContent.Text = item.content.ToString(); 
    } 

我给出了这样的任何页面的链接;

<a title="Read More" href="<%#Eval("url")%>"></a> 

这是我们的seo策略......我们必须继续这个策略。现在问题再次出现..

我们如何解决与旧的网站ASP和新的网站ASP.NET的URL问题(谷歌机器人)?你可以看这些网站的链接样本link1和link2 ..

回答

0

因为你没有改变域名,并且既然新老网页似乎有一个.html扩展名(不是asp或aspx),我假设您的新网站也将收到旧网站的请求,新网站一旦上线就会立即下线。 如果是这样,你应该让你的新网站响应您的旧网址的所有请求与301重定向(永久重定向)到相应的新网址。然后搜索引擎将页面的排名从旧页面转移到新页面。 例如,在您的新网站在Global.asax你可以有这样的:

string requestedUrl = HttpContext.Current.Request.Url.ToString().ToLower(); 
if (IsOldUrl(requestedUrl)) 
{ 
    HttpContext.Current.Response.Status = "301 Moved Permanently"; 
    HttpContext.Current.Response.AddHeader("Location", NewUrlFor(requestedUrl)); 
} 

其中IsOldUrl(string oldUrl)NewUrlFor(string oldUrl)你应该跟你要重定向的旧网址列表,并映射逻辑写入功能旧的网址与相应的新网址。

在一个不相关的注释中:查看您发布的global.asax的片段,它看起来像是为每个请求命中数据库。如果是这样的话,我会建议积极的缓存,如果你想让你的网站表现得体。

+0

IsOldUrl和NewUrlFor请给我这个函数的示例代码。 – mekar10

+0

@mehmetkarpuz这个实现可能是一个'Dictionary redirects',你可以将旧的urls作为关键字,新的urls作为相应的值。那么你可以这样做: 'if(redirects.ContainsKey(pageRequested)) { Response.Clear(); Response.StatusCode = 301; Response.AddHeader(“Location”,重定向[pageRequested]); Response.End(); }' –

+0

好的我做了这个解决方案。但是,我们在旧网站上有太多的网址。我该如何快速做到这一点? – mekar10