Web TasarımSEO

.htaccess Dosyası ile URL Yeniden Yönlendirme

Dijital dünyada sürekli web sitelerinde değişiklikler yapılmaktadır. İçeriklerin silinmesi, eklenmesi, etki alanı değişimi, web site altyapı değişikliği, sunucu değişikliği ve daha fazlası yapılmaktadır. Web sitenizin yapacağınız büyük yapısal değişiklikler sonrasında eskisi gibi hatta daha iyi performans göstermesini istiyorsanız, URL yönlendirmeleri hakkında iyi bir bilgi sahibi olmalısınız. 

URL yönlendirmelerini sunucu düzeyinde yapılandırmak için, .htaccess dosyası ile yeniden yönlendirme kuralları oluşturulur.

.htaccess Dosyası Nedir?

Apache web sunucularında, .htaccess dosyaları, ana web sunucu yapılandırma dosyalarına erişim yetkiniz olmasa bile yapılandırma değişiklikleri yapabilmenize olanak sağlar. 

Web sunucunuzun ana yapılandırma dosyalarına müdahale etmeden yapılandırma yapmanıza olanak sağlar. Web sitenizin dosyalarının bulunduğu dizin temelinde .htaccess dosyaları çalışır. Web siteniz ve subfolder bir yapıya sahipseniz, o dizin ve tüm alt dizinlere uygulanabilecek kurallar oluşturabilirsiniz.

Sunucu yapılandırmasında kullanabileceğiniz tüm sözdizimini .htaccess dosyası içerisinde de kullanılabilir.

Sunucu yapılandırma ile aynı işlemleri yapabildiğiniz .htaccess dosyası üzerinde zorunlu kalmadıkça müdahale etmeyiniz. Yapacağınız en ufak bir sözdizimi hatası, sunucu performansını olumsuz etkileyecektir. Sunucu tarafında işlem yapmaktansa web sitenizin yazıldığı kaynak kodları üzerinde işlemler yapmak çok daha mantılı ve sağlıklı olacaktır.

CMS veya özel bir yazılım kullanıyorsanız genellikle yönetim panelleri üzerinde link yönetimi (URL yönlendirme) işlemleri basit bir şekilde halledebiliyorsunuz. Wordpress altyapısına sahip bir web siteniz varsa, Redirection on WordPress eklentisi ile kolaylık sitenizde ki URL yönlendirmeleri kontrol edebilirsiniz.

Sunucu Tarafında .htaccess Nasıl Etkinleştirilir?

Sunucu tarafında .htaccess’i etkinleştirme yapmadıysanız, sudo veya kök ayrıcalıklarına sahip olmanız gerekmektedir. Kök ayrıcalıklarına sahip değilseniz bir yetkiliden veya uzmandan destek alınız.

Web sitenizin http yapılandırma dosyasında, “VirtualHost” bloğundan sonra bu kodu ekleyin:

</VirtualHost>
<Directory /var/www/test.com/public_html>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>

Apache web sunucunuzu yeniden başlatınız.

CMS sistemlerinde public_html klasörü içerisine otomatik olarak .htaccess dosyası oluşturulmaktadır. Dosya açık olarak görünmemekte, bunun için gizli dosyaları göster seçeneğini aktif etmelisiniz. Dosya oluşturulmamış ise, metin düzenleyici yardımıyla bir .htaccess oluşturun ve public_html klasörü içerisine ekleyiniz.

Yapılandırma dosyalarına müdahale etmeden önce her zaman yedeğini almayı unutmayın. Müdahale sonrasında HTTP durum kodlarından HTTP 500 dahili sunucu hataları ile karşılaşırsanız, yedeği geri yükleyerek sorunu çözersiniz.

.htaccess Dosyası ile Yeniden Yönlendirme

Yeniden yönlendirme için .htaccess dosyasını kullanmak tehlikeli ama oldukça basittir. Aynı etki alanında yer alan bir sayfayı başka bir sayfaya yönlendirmek aşağıda yer alan yönergeyi kullanabilirsiniz.

Redirect 301 /seo/seo-ne-demek.html /seo/seo-nedir.html

Yukarıda yer alan söz dizimi yönergesi şunu ifade etmektedir:

  • Redirect – Direktif’in ismi yönlendirme yapacaksanız değiştirmeden kullanmalısınız. Büyük küçük harfe duyarlı olduğundan R harfi büyük yazılmalıdır.
  • 301 – HTTP durum kodunu belirtmektedir. URL’in kalıcı olarak başka bir URL’e yönlendireceğini ve 301 durum yanıt kodunu döndürmesi gerektiğini belirtiyoruz. Eğer ki .htaccess dosyasında durum kodu eklenmezse, sistem yönlendirmenin geçici yönlendirme olarak ele alacak ve 302 HTTP durum kodu döndürecektir.
  • İlk URL – eski URL’i belirtmekteyiz. Başında alan adı olmadan yazıyoruz. Tüm alan adınızı yeni bir URL’e yönlendirmek isteseydiniz bu alana sadece / (eğik çizgi) koymanız yeterlidir.
  • İkinci URL – yeni URL’i yani yönlendirmenin gideceği adresi işaret etmekteyiz. Yine aynı şekilde başında alan adını yazmıyoruz. Eğer ki farklı bir alan adına yönlendirme yapacaksak ziyaretçinin yeni görmesini istediğimiz sayfanın tam URL’ini yazmamız gerekir.

Yeniden yönlendirme yönergeleri farklı şekilde kurallar oluşturulabilir. Aşağıda ki tabloda .htaccess dosyası ile farklı yönlendirme örneklerini bulabilirsiniz. neyi yönlendirmeniz gerektiğine bağlı olarak birçok farklı şekilde uyarlanabilir.

Yönlendirme AmacıKod
Aynı etki alanında yer alan URL’ler arasında yönlendirme: Redirect 301 /blog/eski_sayfa.html /seo/yeni_sayfa.html
Bir URL’i farklı bir etki alanında yer alan bir sayfaya yönlendirme:Redirect 301 /blog/eski_sayfa.html https://www.farklisite.com/seo/yeni_sayfa.html
Aynı etki alanında yer alan alt klasörler arasında yönlendirme:Redirecet 301 /blog /seo
Bir etki alanında yer alan alt klasörü başka bir siteye yönlendirme:Redirect 301 /blog https://www.yenisiteadresi.com/
Etki alanını aynı etki alanında yer alan bir alt klasöre yönlendirme:Redirect 302 /blog
Domainler arasında yönlendirme:Redirect 301 /https://www.siteadresi.com
Özel bir 404 sayfasına yönlendirme:ErrorDocument 404 /error/404.html

Not : Özel 404 sayfa yönlendirmeleri farklı bir yönerge adı kullanır, ancak bu grafikteki diğer yönlendirme kurallarıyla aynı şekilde biçimlendirilirler. Bunu kullanıyorsanız, hata sayfanızı zaten oluşturduğunuzdan emin olun.

Rewrite Modülü ile HTTPS’e Yönlendirme

Yukarıda yer alan yönlendirme yönergeleri yerine Apache rewrite modülünü kullanabilirsiniz. Bu modül ile daha karmaşık yönlendirme senaryolarında URL isteklerini değiştirmenize ve yeniden yazmanıza olanak tanır.

Örneğin, web sitenizde http:// versiyonu kullanırken, tüm URL’leri https:// versiyona yönlendirmek için bu yöntemi kullanabilirsiniz.

.htaccess dosyasında ilk defa Rewrite modülünü kullanacaksanız, RewriteEngine’i etkinleştirmeniz gerekir. Bunun için aşağıda yer alan kodu yazmanız yeterlidir. Eğer ki birden fazla kural oluşturacaksanız kodu dosyanın başına bir kere eklemeniz yeterlidir.

RewriteEngine On

Daha sonrasında ikinci aşama olarak tüm http:// URL’leri https:// URL’lere yönlendirmek için aşağıda kodu ekleyiniz:

RewriteCond %{https} off
RewriteRule ^(.*)$ https://www.ExampleURL.com/$1 [R=301,L]

İlk satırda ifade edilmek istenen, istekte bulunan URL’nin https:// versiyonu olup olmadığını kontrol eder. İfadede yer alan “off”, URL’de https:// içermiyorsa aşağıda ki kuralın işleme alınması gerektiğini bildirir.

İkinci satırda ifade edilmek istenen, koşul sağlandığında istekte bulunulan http:// URL’nin, https:// versiyonuna yönlendirme yapılmasını söylüyor.

Son kısımda yer alan, [R=301,L] bunun bir HTTP 301 durum kodu veya kalıcı yönlendirme olduğu ifade eder. “L” harfi ise, bunun kümedeki son kural olduğunu ve çalıştırıldıktan sonra sunucunun bir işlem yapması gerektiği anlamına gelir.

Site Denetimi ile Yönlendirmelerinizi Düzenli Kontrol Edin

Bir web sitesinin bakımı oldukça titizlik gerektiren, karmaşık ve hata yapılması kolay bir iştir. Web sitenizi ayda 2 defa düzenli kapsamlı bir denetim yapmalısınız. Kapsamlı site denetimlerinde, Screaming Frog SEO Spider aracını tercih ediyorum. 

Kapsamlı site denetimi esnasında karşılaştığınız hata ve önerileri düzeltmelisiniz. Yönlendirmeleri hatalarını mutlaka kontrol etmeli ve düzeltilmelidir. Yanlış yönlendirmeler kullanıcılara ve arama motoru botlarına zaman kaybettirmektedir. Yönlendirmeleri sorunları için aşağıdakiler kontrol edebilir: 

  • Canonical bağlantılar
  • Bozuk bağlantılar (4XX Bağlantı)
  • HTTP yönlendirme olup olmadığı
  • Kalıcı ve geçici yönlendirmeler

.htaccess dosyası ile doğru yönlendirmeler oluşturarak ziyaretçilere organik aramada, arama motoru botlarına tarama esnasında iyi bir site deneyimi yaşatırsınız.

Web Site SEO Analizi Talep Et

İlgili Makaleler

Bir cevap yazın

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

Başa dön tuşu