.htaccess Dosyası ile URL Yeniden Yazma Nedir?
Örneğin, bir ürün sayfasının URL'si şöyle gözükebilir:
```
www.siteniz.com/product?id=123
```
Ancak SEO açısından daha verimli bir URL şu şekilde olmalıdır:
```
www.siteniz.com/product/123
```
Bunu yapabilmek için .htaccess dosyasını kullanarak URL'yi yeniden yazabilirsiniz. Ancak bazı durumlarda, yanlış yapılandırmalar veya hatalar nedeniyle işler ters gidebilir.
cPanel'de URL Yeniden Yazma Hatası Neden Olur?
- .htaccess dosyasının yanlış yazılması: Küçük bir yazım hatası, URL yeniden yazma işleminin tamamen çalışmamasına neden olabilir.
- Yeniden yazma modülünün devre dışı olması: Apache'nin `mod_rewrite` modülü, URL yeniden yazma için gereklidir. Eğer bu modül etkin değilse, yeniden yazma kuralları uygulanmaz.
- Önbellek sorunları: Tarayıcı önbelleği, yapılan değişikliklerin hemen yansımasını engelleyebilir.
- Yanlış dizin kullanımı: .htaccess dosyasının doğru dizinde olması önemlidir. Eğer kök dizin dışında bir yere yerleştirilirse, kurallar geçerli olmayabilir.
.htaccess Dosyasında URL Yeniden Yazma İçin Doğru Kod
RewriteEngine On
RewriteRule ^product/([0-9]+)$ /product?id=$1 [L]
Bu kod, `/product/123` gibi URL'leri, `id=123` şeklinde yönlendirecektir. Kodun anlamını daha iyi kavrayabilmeniz için açıklamak gerekirse:
- `RewriteEngine On` komutu, URL yeniden yazma modülünü aktif hale getirir.
- `RewriteRule ^product/([0-9]+)$` ifadesi, `/product/123` gibi URL'leri yakalar.
- `/product?id=$1` ise, yakalanan sayıyı (örneğin, `123`) URL'ye ekler ve yeniden yönlendirir.
- `[L]` parametresi, bu kuraldan sonra başka bir kuralın çalıştırılmamasını sağlar.
Yaygın Hatalar ve Çözümleri
Birçok kullanıcı, .htaccess dosyasını yanlış yapılandırarak "Internal Server Error" ile karşılaşır. Bu genellikle yazım hataları, eksik veya yanlış komutlar nedeniyle olur. Çözüm için dosyanızda her bir komutu dikkatlice gözden geçirin.
# 2. Yeniden Yönlendirme Döngüsü
Bir diğer yaygın hata ise URL'lerin birbirine yönlendirilmesi sonucu oluşan "yönlendirme döngüsü"dür. Bu durum, URL'lerin yanlış şekilde yazılması veya birden fazla yeniden yazma kuralının çakışması sonucu meydana gelir. Burada yapmanız gereken, her kuralın doğru olduğundan emin olmak ve gereksiz yönlendirmeleri kaldırmaktır.
Eğer .htaccess dosyanızda doğru kuralları uygulamıyorsanız, bu durum SEO'nuzu olumsuz etkileyebilir. Arama motorları, eski URL'lerinizi hala indeksliyor olabilir. Bu durumu önlemek için, eski URL'lerden yeni URL'lere yönlendirme yapmanız gerekir. Aşağıdaki gibi bir kod, bu tür bir yönlendirme işlemini sağlar:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.eskiadres\.com$ [NC]
RewriteRule ^(.*)$ https://www.yenadres.com/$1 [L,R=301]
Bu kod, eski adreslerinizi (örneğin `www.eskiadres.com`) yeni adresinize (örneğin `www.yenadres.com`) kalıcı bir şekilde yönlendirecektir.
.htaccess Dosyasını Düzenlerken Dikkat Edilmesi Gerekenler
- Mod_rewrite’ı Aktif Edin: Apache sunucunuzda `mod_rewrite` modülünün aktif olduğundan emin olun. Çoğu barındırma sağlayıcısı bu modülü varsayılan olarak etkinleştirir, ancak bazen manuel olarak etkinleştirilmesi gerekebilir.
- Hata Loglarını Kontrol Edin: Eğer URL yeniden yazma hatası alıyorsanız, hata loglarını inceleyerek sorunun kaynağını tespit edebilirsiniz. cPanel üzerinden "Error Log" kısmına göz atabilirsiniz.