eray aydoğdu

jQuery and ASP.NET MVC fanatic.

301 Yönlendirmesi Nasıl Yapılır

Bu yazımızda Asp.Net MVC ile 301 yönlendirmesi nasıl yapılacağını göreceğiz. Geçenlerde google da üst sıralarda bulunan bir sitemizin duplicate content ve gereksiz url uzaması yüzünden daha önce mantıklı gelen url yapısını (etiket/{etiketadi}/{etiketid}) değiştirmeye karar verdik. Fakat google indexlerimizin de silinmesi optimizasyon ve sitemizin sırasını etkileyebileceğinden 301 yönlendirmesi yapmaya karar verdik. Şimdi kısaca bunu nasıl yapılacağını göreceğiz. Aslında çok basit bir kaç ufak değişiklik.

Öncelikle site içinde verdiğimiz etiket linklerini yeni yapımızla yani /etiket/{etiketurl} şeklinde yeniden yapılandırıp çalışır hale getirelim. Daha sonra google ‘ın indexlediği yani arama sonuçlarında çıkan url yapısını yeni yapımıza yönlendirmemiz gerekiyor. Bunun için Global.asax dosyasını açıp eski url yapımızı yakalayıp bir Action da bunu 301 Redirect yönlendirmesi yaparak yeni url yapısına yönlendireceğiz.

routes.MapRoute(null,
“etiket/{tagName}”,
new { controller = “Home”, action = “Tags” }
);

routes.MapRoute(null,
“etiket/{tagName}/{id}”,
new { controller = “Home”, action = “TagsResolve” },
new { id = @“\d+” }
);

Yukarıda gördüğümüz route tanımlamalarında üstteki çalışmasını istediğimiz yeni yapı. Alttaki iste google sonuçlarında çıkan eski indexlerimizi yakalayıp TagResolve Action’ında yeni yapıya yönlendirme işlemi yapacağımızı belirttik. Şimdi TagResolve Action’ında nasıl 301 yönlendirmesi yapacağımıza bakalım.

301 Yönlendirmesi (301 Redirect) :

public ActionResult TagsResolve(int id)
{
string url = “/etiket/”;
url += db.Tags.Where(l => l.TagId == id).Single().Url;
Response.StatusCode = 301;
Response.RedirectLocation = url;
return new ContentResult();
}

Bu Action’ımız eski url yapısında gelen ziyaretçimizi yakalayıp yeni url yapımıza 301 Redirect yani 301 Yönlendirmesi yaparak google için yada sitenin sıralaması için endişelenmemize son veriyor.