Проблема с URL с ASP на ASP.NET снова - PullRequest
0 голосов
/ 19 августа 2011

Я объясню еще раз с примерами кодов. У нас есть сайт ASP. В нем слишком много содержимого, вы можете посмотреть этот ASP-сайт здесь для примера ссылки1 . Теперь нам нужно изменить этот сайт на ASP.NET, вы можете посмотреть образец страницы ASP.NET здесь для примера link2 . Наш домен не изменится. Но наши старые URL-адреса изменятся, вы можете увидеть различия по ссылкам link1 и link2 ... Проблема в том, что робот Google проиндексировал наши старые URL-адреса, и робот снова появится, но не найдет наши старые URL-адреса, поэтому он даст нам плохие баллы ... Как можно мы решаем эту проблему ??

Я приведу примеры кодов для sep asp.net ... может быть, это может помочь вам в этой проблеме ..

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 мы сохраняем в БД 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-тактика ... Мы должны продолжать эту тактику. Теперь квест снова придет ..

Как мы можем решить проблему с URL (для робота Google) со старым веб-сайтом ASP и новым веб-сайтом ASP.NET? Вы можете посмотреть образцы для этих сайтов link1 и link2 ..

1 Ответ

0 голосов
/ 19 августа 2011

Так как вы не меняете домен, и поскольку старые и новые страницы, похоже, имеют расширение .html (не asp или aspx), я предполагаю, что ваш новый сайт будет получать также запросы на старый сайт, который выйдет в автономный режим, как только новый выйдет. Если это так, ваш новый сайт должен отвечать на все запросы ваших старых URL с перенаправлением 301 (постоянное перенаправление) на соответствующие новые URL. Поисковые системы затем перенесут рейтинг страницы со старых страниц на новые. Например, в 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) - это функции, которые вы должны написать со списком старых URL-адресов, которые вы хотите перенаправить, и логикой для сопоставления старых URL-адресов с соответствующими новыми.

На несвязанном примечании: глядя на фрагмент вашего global.asax, который вы опубликовали, похоже, что вы попадаете в базу данных для каждого запроса. Если это так, я бы предложил агрессивное кэширование, если вы хотите, чтобы ваш сайт работал достойно.

...