.htaccess dosyası, Apache web sunucusunda kullanılan bir yapılandırma dosyasıdır ve sayfa yönlendirmeleri gibi birçok farklı işlevi gerçekleştirmek için kullanılabilir. Sayfa yönlendirme işlemi için .htaccess dosyasında aşağıdaki örneği kullanabilirsiniz:
301 Yönlendirme (kalıcı yönlendirme):
Bu tür yönlendirmeler, bir sayfanın kalıcı olarak başka bir sayfaya yönlendirilmesini sağlar. Örneğin, “eski-sayfa.html” adlı bir sayfayı “yeni-sayfa.html” adlı yeni bir sayfaya yönlendirmek istediğinizi varsayalım. Aşağıdaki kodu .htaccess dosyasına ekleyebilirsiniz:
Redirect 301 /eski-sayfa.html http://www.orneksite.com/yeni-sayfa.html
Bu kod, kullanıcılar “eski-sayfa.html” adresine gittiklerinde otomatik olarak “yeni-sayfa.html” adresine yönlendirileceklerdir.
302 Yönlendirme (geçici yönlendirme):
Bu tür yönlendirmeler, bir sayfanın geçici olarak başka bir sayfaya yönlendirilmesini sağlar. Örneğin, “gecici-sayfa.html” adlı bir sayfayı “gecici-yeni-sayfa.html” adlı yeni bir geçici sayfaya yönlendirmek istediğinizi varsayalım. Aşağıdaki kodu .htaccess dosyasına ekleyebilirsiniz:
Redirect 302 /gecici-sayfa.html http://www.orneksite.com/gecici-yeni-sayfa.html
Bu kod, kullanıcılar “gecici-sayfa.html” adresine gittiklerinde otomatik olarak “gecici-yeni-sayfa.html” adresine yönlendirileceklerdir.
RewriteEngine On
RewriteRule ^eski-sayfa$ yeni-sayfa [R=301,L]
Bu örnek, tarayıcıya 301 (Kalıcı Yönlendirme) durum kodu göndererek “eski-sayfa” URL’sini “yeni-sayfa” URL’sine yönlendirir.
- RewriteEngine On: mod_rewrite motorunu etkinleştirir.
- RewriteRule: Yönlendirme kuralını başlatır.
- ^eski-sayfa$: “eski-sayfa” ile tam olarak eşleşen URL’leri belirtir.
yeni-sayfa: Yönlendirilen hedef sayfanın adını belirtir. Bu örnekte, “eski-sayfa” URL’si “yeni-sayfa” URL’sine yönlendirilir. - [R=301,L]: Yönlendirme seçeneklerini belirtir. “R=301”, 301 (Kalıcı Yönlendirme) durum kodunu kullanarak yönlendirme yapacağını belirtir. “L”, bu yönlendirme kuralının son kural olduğunu ve diğer kuraları uygulamaması gerektiğini ifade eder.
Böylece, tarayıcıya 301 kodu gönderilir ve kullanıcı “eski-sayfa” URL’sine gittiğinde tarayıcı otomatik olarak “yeni-sayfa” URL’sine yönlendirilir.
Klasör Yönlendirmesi:
.htaccess dosyası, bir klasörü başka bir klasöre yönlendirmek için de kullanılabilir. Örneğin, “eski-klasor” adlı bir klasörü “yeni-klasor” adlı bir klasöre yönlendirmek istediğinizi varsayalım. Aşağıdaki kodu .htaccess dosyasına ekleyebilirsiniz:
Redirect /eski-klasor http://www.orneksite.com/yeni-klasor
Bu kod, kullanıcılar “eski-klasor” adresine gittiklerinde otomatik olarak “yeni-klasor” adresine yönlendirileceklerdir.
Bu örnekler, .htaccess dosyasında sayfa yönlendirmeleri için yaygın kullanılan bazı yöntemleri göstermektedir. Ancak, .htaccess dosyası kullanmadan önce, web sunucunuzun Apache olduğundan ve mod_rewrite eklentisinin etkinleştirildiğinden emin olun. Ayrıca, yönlendirmeleri yapmadan önce dosya izinlerini kontrol etmek önemlidir.
RewriteRule, 301, 302 Yönlendirmeleri Arasındaki Farklar
RewriteRule kullanımıyla yapılan yönlendirmeler mod_rewrite modülünün özelliklerini kullanırken, 301 ve 302 yönlendirmeleri ise HTTP protokolü üzerinden yapılan yönlendirmelerdir. İşlevsel olarak farklılıklar şunlardır:
- RewriteRule ile yapılan yönlendirmeler:
- Yönlendirme işlemi sunucu tarafında gerçekleşir ve kullanıcının tarayıcısı bundan haberdar olmaz.
- Kullanıcının tarayıcısındaki URL, yönlendirilen sayfayı göstermez, orijinal URL’i korur.
- Genellikle sayfa yapısının değiştirildiği veya farklı bir içeriğe yönlendirme yapıldığı durumlarda kullanılır.
- .htaccess dosyasında RewriteRule ile yapılan yönlendirmeler, genellikle SEO dostu URL yapılarının oluşturulması veya karmaşık URL’lerin basitleştirilmesi için tercih edilir.
- 301 Yönlendirmesi:
- Kalıcı yönlendirme olarak bilinir.
- Kullanıcıların tarayıcılarına gönderilen bir HTTP durum kodudur.
- Tarayıcılar, 301 kodunu alır ve otomatik olarak yönlendirilen sayfaya gider.
- Arama motorları, 301 yönlendirmesini, yönlendirilen sayfanın eski URL’sinin artık geçerli olmadığını ve yerine yönlendirilen URL’nin kullanılması gerektiğini anlaması için kullanır.
- Örneğin, bir sayfanın URL’si değiştiğinde veya bir alan adı başka bir alan adına yönlendirildiğinde kullanılır.
- 302 Yönlendirmesi:
- Geçici yönlendirme olarak bilinir.
- Tarayıcılara gönderilen bir HTTP durum kodudur.
- Tarayıcılar, 302 kodunu alır ve yönlendirilen sayfaya geçici olarak gider, orijinal URL’yi korur.
- Arama motorları, 302 yönlendirmesini, yönlendirilen sayfanın geçici olarak başka bir adrese taşındığını, ancak orijinal URL’nin geçerli olduğunu anlaması için kullanır.
- Örneğin, bir web sitesindeki bir sayfanın bakım çalışması nedeniyle geçici olarak başka bir sayfaya yönlendirilmesi durumunda kullanılır.
Bu şekilde, RewriteRule ile yapılan yönlendirmeler sunucu tarafında gerçekleşirken, 301 ve 302 yönlendirmeleri tarayıcılar ve HTTP protokolü üzerinden gerçekleştirilir. Hangi yönlendirme türünün kullanılacağı, ihtiyaçlarınıza ve yönlendirme senaryolarına bağlı olarak belirlenmelidir.