2011-08-19 24 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