Sayfa Yönlendirmesi Nedir ve Nasıl Yapılır

Web sayfamızın url yapısında bir değişiklik yaptığımızda yada bazı sayfaları manuel olarak kaldırıp yerine başka sayfalar koyduğumuzda eski url ile gelen trafiği yeni url’ye yönlendirmemiz gerekir. Aksi takdirde 404 hatası alırız ki buda sitemizin trafik performansı için istenmeyen bir durumdur. Ayrıca bu tür hatalar arama motorları üzerinden negatif etki yapacaktır.

Eski urlmizi yeni urlmize yönlendirirken kullanmamız gereken iki adet yönlendirme şekli vardır. Bunlar 301 ve 302 dir. 302 yönlendirmesi sayfamızın geçici olarak yönlendirildiğini, bir süre sonra tekrar eski url ile erişilebilecek olduğunu belirtir. 301 ise, ilgili sayfanın sonsuza dek kapandığını bildirir, artık yeni url üzerinden erişilebilir olduğunu bildirir.

Web sitemizin url yapısında yapacağımız değişikliklerde 301 yönlendirmesini yapmak zorundayız. Tabiki eğer web sitemizin ziyaretçi sayısının azalmasını ve arama motorlarındaki değerinin düşmesini istemiyorsak.

Örneğin biz yazılım mutfağı için asp.net de yazdığımız custom bir blog sayfası kullanıyorduk, fakat bakım ve yeni özellikler eklemek için vakit bulamamamızdan dolayı bir süredir sorun yaşıyorduk. 1 hafta önce siteyi Word presse taşımaya karar verdik ve tüm içeriği Sql Server üzerinden word Presse aktardık. Aktarımı nasıl yaptığımı ileri ki makalelerde anlatırım diye umuyorum.

Word Presse geçiş sonrası sitenin tüm url yapısı değişti, dolayısı ile artık google üzerinden gelen trafikler ve başka sitelerden verilen linkler çalışmayacaktı. Bende eski aspx sayfalarına gelen tüm içeriği tek tek yeni sayfalara yönlendirecek şekilde dummy aspx sayfaları yapıp word press ile aynı hostingde çalıcak hale getirdim. 

Örneğin aşağıda eski ve yeni linkleri bulunan sayfa için aşağıdaki aspx sayfasını hazırladım. Tabiki bu sayfaları tek tek elle değil, otomatik yazdığım bir kod parçacağı ile ürettim. 

Aşağıdaki eski urlye tıkladığınızda sizi yeni url ye yönlendirdiğini görürsünüz.

<script language="C#" runat="server">
private void Page_Load(object sender, System.EventArgs e)
{
   Response.Status = "301 Moved Permanently";
   Response.AddHeader("Location","/?p=11");
   Response.End();
}
</script> 

Eski url yapısı gereği bazı sayfalarda tek sayfa üzerinden yönlendirme yapamadım, ama search.aspx gibi sayfalar  üzerinden gelen her aramayı aşağıdaki gibi yeni arama sayfasına yönlendirdim.

<script language="C#" runat="server">
private void Page_Load(object sender, System.EventArgs e)
{
        string s = Request.QueryString["s"].ToString().ToLower();
	string word = s.Trim();
	String newurl = String.Format("/?s={0}",word);

	Response.Status = "301 Moved Permanently";
	Response.AddHeader("Location", newurl);
	Response.End();         
}
</script> 

Sizde aspx sayfalarını yukarıdaki gibi 301 yönlendirme ile yeni adreslerine yönlendirebilirsiniz. Tabiki bu yönlendirmeleri PHP veya ASP ile de aşağıdaki gibi yapabilirsiniz.

<?php
// PHP permanent URL redirect - generated by www.rapidtables.com
header("Location: ttp://www.yazilimmutfagi.com/index.php/2012/05/28/microsoft-dynamic-crm-yeni-urun-tanimlama/", true, 301);
exit();
?>
<%@ Language="VBScript" %>
<%
' ASP permanent URL redirect - generated by www.rapidtables.com
Response.Status="301 Moved Permanently"
Response.AddHeader "Location", "ttp://www.yazilimmutfagi.com/index.php/2012/05/28/microsoft-dynamic-crm-yeni-urun-tanimlama/"
Response.End
%>

301 yönlendirmeleri yapabileceğiniz ortamları aşağıdaki tabloda bulabilirsiniz.

DilServer / ClientEski Sayfa TipiServer Tipi301 desteği
PHPServer-side.phpApache / LinuxEvet
ASPServer-side.aspIIS / Windows
Evet
ASP.NETServer-side.aspxIIS / Windows
Evet
.htaccessServer-sideallApache / Linux
Evet
IISServer-sideallIIS / Windows
Evet
HTML canonical link tagClient-side.htmlallHayır
HTML meta refreshClient-side.htmlall
Hayır
HTML frameClient-side.htmlall
Hayır
JavascriptClient-side.htmlall
Hayır
jQueryClient-side.htmlall
Hayır

Tags:

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir