cPanel hosting'de ornekblog.com ve www.ornekblog.com genellikle aynı klasörü gösterir, yani ikisi de siteni açar. Bu, her sayfanın iki kopyası demek. Google bu adreslerden birini canonical seçip diğerlerini yönlendirmeyle ona göndermeni istiyor (kopya URL'leri birleştirme). AdSense botu da "site.com ve www.site.com adreslerine ayrı ayrı" erişiyor (AdSense tarayıcısı). cPanel'de bunu düzeltmenin iki yolu var: Yönlendirmeler (Redirects) ekranı ya da .htaccess dosyasına birkaç satır. WordPress sitelerde ikincisi daha güvenilir.
Yönlendirmeden önce: iki ad için de SSL
https://www.ornekblog.com adresini açan bir ziyaretçinin, yönlendirme gerçekleşmeden önce www için geçerli bir sertifikaya ihtiyacı var. Sertifika yoksa tarayıcı güvenlik uyarısı gösterir ve 301'ini hiç görmez.
cPanel'in AutoSSL'i bunu normalde karşılıyor: sertifikaya her alan adı ve alt alan adı için karşılık gelen www. adresini de ekliyor. Ama www. adresi DCV doğrulamasını geçemezse onu güvence altına almaya çalışmıyor (cPanel SSL rehberi). www için DNS kaydı yoksa ya da başka bir yeri gösteriyorsa DCV başarısız olur. O yüzden önce:
- Alan Adları → Zone Editor (Domains → Zone Editor) ekranında
wwwiçin aynı sunucuyu gösteren bir kayıt olduğunu kontrol et (çoğu zaman ana alan adına bir CNAME). - Güvenlik → SSL/TLS Status ekranında hem
ornekblog.comhemwww.ornekblog.comadresinin kapsandığına bak.wwwyoksa AutoSSL'i yeniden çalıştır.
A seçeneği: Yönlendirmeler ekranı
Alan Adları → Yönlendirmeler (Domains → Redirects) ekranına git (cPanel Redirects). www'yi çıplak alan adına göndermek için:
| Alan | Değer |
|---|---|
| Tür (Type) | Kalıcı (Permanent 301) |
| Alan adı | ornekblog.com |
| Yol | boş bırak (/ zaten yazılı) |
| Yönlendirilecek adres | https://ornekblog.com/ |
| www. yönlendirmesi | Only redirect with www. (yalnızca www ile gelenleri yönlendir) |
| Wild Card Redirect | işaretli; böylece /sayfa ana sayfaya değil /sayfa adresine gider |
Seni döngüden koruyan, www seçeneği. "Redirect with or without www." seçersen ornekblog.com kendisine de yönlenir. cPanel'in üç seçeneği şunlar: "Only redirect with www.", "Redirect with or without www." ve "Do Not Redirect www.". Ters yön için (çıplak → www) Do Not Redirect www. seç ve hedef olarak https://www.ornekblog.com/ yaz.
cPanel'in kendi dokümanındaki iki sınır:
- cPanel bu kuralları ".htaccess dosyasının en altına" yazıyor ve WordPress gibi bir içerik yönetim sistemi kullanıyorsan yönlendirmenin düzgün çalışmayabileceğini söylüyor. WordPress'in kendi rewrite bloğu üstte durduğu için isteği önce o yakalayabiliyor.
- Mevcut bir yönlendirme düzenlenemiyor. Değiştirmek için silip yeniden oluşturman gerekiyor.
Bunlardan biri sorun çıkarırsa B seçeneğine geç.
B seçeneği: .htaccess (WordPress ile de çalışır)
Dosyalar → Dosya Yöneticisi'ni (Files → File Manager) aç, Ayarlar'dan Show Hidden Files (dotfiles) seçeneğini işaretle ve sitenin kök klasöründeki (genellikle public_html) .htaccess dosyasını düzenle. Kuralı dosyanın en üstüne, varsa # BEGIN WordPress satırının üstüne koy.
www → çıplak alan adı ve HTTP → HTTPS, tek adımda:
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [L,NE,R=301]
çıplak alan adı → www ve HTTP → HTTPS, tek adımda:
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://www.%1%{REQUEST_URI} [L,NE,R=301]
Bunlar Apache'nin "Canonical Hostnames" tarifinin bizim uyarladığımız hâli (Apache dokümanı). İki değişiklik önemli. Apache örnekleri çıplak [R] kullanıyor ve bu, belirtilmezse varsayılan olan 302'yi gönderiyor (RewriteRule bayrakları). Biz R=301 kullanıyoruz. Ayrıca HTTPS ve alan adı düzeltmesini birleştiriyoruz ki ziyaretçi iki yönlendirmeden geçmesin. Son koşul her zaman eşleşiyor ve www. olmadan alan adını %1 olarak yakalıyor. %{REQUEST_URI} yolu koruyor, sorgu dizesi de kendiliğinden ekleniyor.
İki kuralı da Apache 2.4'te http://ornekblog.com/ads.txt?x=1, http://www.ornekblog.com/ads.txt?x=1 ve daha derin bir yolla test ettik. Her istek, yolu ve sorgu dizesi korunmuş hâlde beklenen HTTPS adresine tek bir 301 döndürdü.

Site Cloudflare arkasındaysa
Cloudflare'in SSL modu Flexible ise Cloudflare sunucunla HTTP üzerinden konuşur. %{HTTPS} her zaman off olur ve yukarıdaki kural sonsuza kadar yönlendirir. Cloudflare dokümanı, sunucu HTTPS'e zorluyorsa Flexible kullanılmamasını söylüyor (Flexible modu). Full (strict) moduna geç ya da yönlendirmeyi Cloudflare'de yap. Nasıl yapılacağı Cloudflare'de www yönlendirme rehberinde. Yönlendirmeyi tek bir yerde kur, ikisinde birden değil.
Force HTTPS Redirect
cPanel'de Alan Adları → Alan Adları (Domains → Domains) altında bir Force HTTPS Redirect anahtarı da var. Geçerli sertifikası olan bir alan adında HTTP'yi HTTPS'e yönlendiriyor (Domains). Kullanmakta sakınca yok, ama ayrı bir www kuralıyla birleşince iki adımlı bir zincir oluşabilir (http://www → https://www → https://). Yukarıdaki .htaccess kuralları ikisini tek adımda yapıyor. Onları kullanıyorsan bu anahtara gerek yok.
WordPress'i de aynı ayara getir
WordPress'te Ayarlar → Genel altında WordPress Adresi (URL) ve Site Adresi (URL) alanları var. İkisi de yönlendirdiğin sürümü kullanmalı. Bu alanlarda https://www.ornekblog.com yazarken .htaccess www'yi siliyorsa WordPress geri yönlendirir ve döngü oluşur. Alanlar griyse değerler wp-config.php içinde WP_HOME ve WP_SITEURL olarak tanımlanmıştır (Genel Ayarlar).
Sonucu kontrol et
for u in http://ornekblog.com http://www.ornekblog.com https://ornekblog.com https://www.ornekblog.com; do
curl -s -o /dev/null -w "$u %{http_code} %{redirect_url}\n" "$u/ads.txt"
done
Dört adresten üçü aynı https:// adresine 301 döndürmeli, canonical olan da 200 vermeli. cPanel dokümanı tarayıcıların yönlendirmeleri önbelleğe aldığı konusunda uyarıyor. Her değişiklikten sonra curl ya da gizli pencereyle test et. Googlebot erişim kontrolü, Google botlarının izlediği yönlendirme yolunu gösteriyor. ads.txt kontrol aracı da dosyanın kök alan adından erişilebilir olduğunu doğruluyor. Google bunu şart koşuyor (ads.txt tarama kuralları).
Dört sürüm de tek adreste bittiğinde ücretsiz taramayı çalıştır. İki adresi ve iki protokolü yeniden test ediyor, bulduğu yönlendirme zincirlerini de listeliyor.
Eskimiş ya da yanlış bir şey mi gördün? Bize yaz, düzeltelim.
Bu rehberi İngilizce oku →Kendi sitende kontrol et. Ücretsiz, kayıt yok.
Bunun için ücretsiz araçlar
- /tools/googlebot-access-checkerGooglebot Erişim KontrolüAna sayfanı Googlebot ve AdSense botu olarak açar, her birinin ne aldığını karşılaştırır.Aracı aç
- /tools/ads-txt-checkerads.txt Kontrol Aracı/ads.txt dosyasının her satırını doğrular, Google'ın senin yayıncı kimliğinle listelendiğini kontrol eder.Aracı aç
Ücretsiz tarama
Kendi siteni kontrol et
Ücretsiz tarama: uygunluk puanı ve tüm sorunlar, genelde birkaç dakikada.