再次出现ASP到ASP.NET的URL问题

时间:2011-08-19 15:03:59

标签: asp.net url url-rewriting seo url-routing

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

我将为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中我们保存为db all content的url ..

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解决网址机器人问题?您可以查看这些网站link1和link2的样本。

1 个答案:

答案 0 :(得分: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的片段,看起来您正在为每个请求访问数据库。如果是这种情况,我会建议积极的缓存,如果你希望你的网站表现得体面。