www, non-www ve HTTPS varyasyonlarını tek kanonik URL altında toplamak için Apache, Nginx, SSL ve WordPress ayarlarında dikkat edilmesi gereken pratik adımlar.
Bir web sitesinin www, non-www, http ve https sürümleri aynı içeriğe açılıyorsa; arama motorları, tarayıcılar ve kullanıcılar açısından karışıklık oluşabilir. Bu durum yinelenen URL algısına, hatalı indekslemeye, çerez ve oturum sorunlarına ya da gereksiz yönlendirme zincirlerine neden olabilir. Doğru yaklaşım, sitenin tek bir kanonik adresini seçmek ve tüm varyasyonları bu adrese tek, temiz ve kalıcı bir yönlendirme kuralıyla bağlamaktır.
Bu işlem özellikle WordPress sitelerinde sık karşılaşılan bir ihtiyaçtır. Alan adınızın hangi sürümünün kullanılacağına baştan karar vermek, teknik SEO tarafında tutarlı bir yapı kurmanıza yardımcı olur. Ayrıca SSL sertifikası, sunucu yapılandırması ve hosting panelindeki alan adı ayarları da bu yönlendirme kararını doğrudan etkiler.
Tek kural yazmadan önce sitenin ana adresini netleştirmeniz gerekir. Örneğin aşağıdaki seçeneklerden yalnızca biri ana sürüm olmalıdır:
Güncel uygulamalarda HTTPS zorunlu kabul edilir. www kullanımı ise marka, altyapı ve tercih meselesidir. Büyük yapılarda www alt alan adı esneklik sağlayabilir; daha sade bir yapı isteyen sitelerde non-www tercih edilebilir. Önemli olan seçimin tutarlı olmasıdır.
WordPress sitelerinin önemli bir bölümü Apache veya LiteSpeed üzerinde çalışır. Bu yapılarda yönlendirme genellikle ana dizindeki .htaccess dosyasıyla yönetilir. Aşağıdaki örnek, tüm http, https, www ve non-www varyasyonlarını https://www.ornekalanadi.com adresine yönlendirir:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} !=on [OR]
RewriteCond %{HTTP_HOST} !^www\.ornekalanadi\.com$ [NC]
RewriteRule ^(.*)$ https://www.ornekalanadi.com/$1 [L,R=301]
</IfModule>
Burada amaç, iki ayrı kural yerine tek kontrol mantığı kullanmaktır. Ziyaretçi http://ornekalanadi.com, http://www.ornekalanadi.com veya https://ornekalanadi.com adreslerinden gelse bile nihai adres aynı olur.
Eğer ana adresiniz https://ornekalanadi.com olacaksa kuralı şu şekilde uyarlayabilirsiniz:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} !=on [OR]
RewriteCond %{HTTP_HOST} !^ornekalanadi\.com$ [NC]
RewriteRule ^(.*)$ https://ornekalanadi.com/$1 [L,R=301]
</IfModule>
Alan adını kendi domaininizle değiştirirken nokta karakterlerinin önüne ters eğik çizgi eklemeyi unutmayın. Yanlış yazılmış bir ifade, sonsuz yönlendirme döngüsüne veya sitenin hiç açılmamasına yol açabilir.
Nginx kullanılan yapılarda .htaccess dosyası çalışmaz. Yönlendirme, sunucu blokları üzerinden yapılır. Bu nedenle kontrolü panelinizden değil, ilgili sanal sunucu yapılandırmasından yapmak gerekir. Yönetimli bir hosting hizmeti kullanıyorsanız bu değişiklik için destek ekibinden yardım almanız daha güvenli olabilir.
Nginx tarafında temel mantık aynıdır: İstenmeyen alan adı ve protokol varyasyonları 301 yönlendirme ile tek ana adrese aktarılır. Ancak yapılandırma dosyaları doğrudan sunucu seviyesinde etkili olduğu için küçük bir söz dizimi hatası tüm siteyi erişilemez hale getirebilir.
Yalnızca sunucu kuralı yazmak yeterli değildir. WordPress yönetim panelinde Ayarlar > Genel bölümündeki “WordPress adresi” ve “Site adresi” alanları da seçtiğiniz kanonik URL ile aynı olmalıdır.
Örneğin ana adresiniz https://www.ornekalanadi.com ise iki alanın da bu değerle başlaması gerekir. Burada http kalırsa karışık içerik uyarıları, yönetim paneline giriş sorunları veya tekrarlayan yönlendirmeler görülebilir.
HTTPS yönlendirmesi yapmadan önce SSL sertifikanızın hem www hem de non-www sürümleri kapsadığından emin olun. Sertifika yalnızca bir varyasyonu kapsıyorsa kullanıcı, yönlendirme tamamlanmadan önce güvenlik uyarısıyla karşılaşabilir.
Bu kontrol özellikle yeni taşınan sitelerde önemlidir. DNS kayıtları güncellenmiş olsa bile SSL henüz aktifleşmemiş olabilir. Böyle bir durumda yönlendirme kuralını eklemeden önce sertifika durumunu panelden doğrulamak daha sağlıklı olur.
En sık yapılan hata, panel, eklenti, CDN ve .htaccess üzerinde aynı anda farklı yönlendirmeler tanımlamaktır. Örneğin bir eklenti non-www’ye, .htaccess ise www’ye yönlendiriyorsa tarayıcı sürekli iki adres arasında gidip gelir.
Sağlıklı yapı için yönlendirme kararını mümkün olduğunca sunucu seviyesinde verin. CDN veya güvenlik katmanı kullanıyorsanız oradaki HTTPS zorlamasının aynı hedefle çalıştığını kontrol edin. Gereksiz ara adımlar performansı düşürür ve arama motoru taramasını zorlaştırır.
Bu kontrollerden sonra tarayıcı gizli sekmesinde dört varyasyonu da ayrı ayrı deneyin. Her biri tek adımda seçtiğiniz ana URL’ye ulaşıyorsa yapı doğru çalışıyor demektir. Kalıcı 301 yönlendirme kullanıldığı için bu düzen, hem kullanıcı deneyimi hem de arama motoru sinyallerinin tek adreste toplanması açısından daha sağlam bir temel oluşturur.