Takip et

www’den Non-www’ye Apache ile Yönlendirme: Ubuntu 14.04 Üzerinde Kapsamlı Rehber

www’den Non-www’ye Apache ile Yönlendirme: Ubuntu 14.04 Üzerinde Kapsamlı Rehber Web sitenizi yayınlarken, alan adınızın “www” ön eki ile mi

www’den Non-www’ye Apache ile Yönlendirme: Ubuntu 14.04 Üzerinde Kapsamlı Rehber

Web sitenizi yayınlarken, alan adınızın “www” ön eki ile mi yoksa onsuz mu erişilebilir olacağı kararı, teknik bir tercih olmaktan öte, sitenizin arama motorlarındaki performansı ve kullanıcı deneyimi açısından kritik bir öneme sahiptir. Örneğin, www.example.com ve example.com teknik olarak iki farklı URL olarak kabul edilir. Bu durum, arama motorları için “yinelenen içerik” (duplicate content) sorununa yol açabilir ve sitenizin SEO sıralamasını olumsuz etkileyebilir. Bu nedenle, web sitenizin tek bir tercih edilen URL üzerinden erişilebilir olmasını sağlamak amacıyla birinden diğerine yönlendirme yapmak elzemdir.

Bu kapsamlı rehberde, Ubuntu 14.04 işletim sistemi üzerinde çalışan Apache web sunucusunu kullanarak www.example.com adresinden example.com adresine (yani “www” ön ekinden “non-www” ön ekine) nasıl yönlendirme yapacağınızı adım adım açıklayacağız. Farklı senaryoları, özellikle de HTTPS (SSL/TLS) kullanımını da ele alarak, en doğru ve SEO dostu yönlendirme yöntemlerini sunacağız.

Neden Yönlendirme Yapmalıyız?

Alan adınızın “www” ön eki ile mi yoksa onsuz mu kullanılacağına karar vermek, sadece estetik bir tercih değildir; web sitenizin teknik altyapısı ve performansı üzerinde doğrudan etkileri vardır. İşte bu yönlendirmeyi yapmanın başlıca nedenleri:

SEO (Arama Motoru Optimizasyonu)

Arama motorları, www.example.com ve example.com adreslerini ayrı ve bağımsız web siteleri olarak algılar. Eğer her iki adrese de aynı içerikle erişilebiliyorsa, bu durum “yinelenen içerik” sorununa yol açar. Yinelenen içerik, arama motorlarının hangi versiyonun orijinal veya tercih edilen versiyon olduğuna karar vermesini zorlaştırır. Bu da sitenizin arama motoru sıralamalarını düşürebilir, çünkü arama motorları içeriğinizin değerini iki farklı URL arasında paylaştırabilir. 301 kalıcı yönlendirmesi kullanarak, arama motorlarına tercih edilen versiyonu açıkça belirtir ve tüm “link gücü”nün (link equity) tek bir URL’de toplanmasını sağlarsınız. Bu, sitenizin SEO performansını önemli ölçüde artırır.

Kullanıcı Deneyimi

Kullanıcılar genellikle bir web sitesinin adresini tarayıcılarına yazarken “www” ön ekini atlama eğilimindedir. Eğer siteniz bu ön ek olmadan erişilebilir değilse veya yanlış bir yere yönlendiriliyorsa, bu durum kullanıcılar için kafa karıştırıcı ve sinir bozucu olabilir. Tek bir, tutarlı bir URL’ye yönlendirme yapmak, kullanıcıların sitenize daha kolay ve sorunsuz bir şekilde erişmesini sağlar, bu da genel kullanıcı deneyimini iyileştirir.

Canonicalization (Kanonikleştirme)

Canonicalization, web sitenizin içeriğinin tek, tercih edilen bir URL üzerinden erişilebilir olmasını sağlama sürecidir. Bu, hem arama motorları hem de kullanıcılar için tutarlılık sağlar. Yönlendirme yaparak, sitenizin kanonik versiyonunu belirtir ve arama motorlarının sitenizi doğru bir şekilde dizine eklemesine yardımcı olursunuz.

Analiz ve Raporlama

Web sitesi trafiğini analiz ederken, tüm verilerin tek bir URL altında toplanması, daha doğru ve anlamlı raporlar almanızı sağlar. Eğer trafik hem “www” hem de “non-www” versiyonlarına dağılmışsa, analiz araçlarınızda (örneğin Google Analytics) verilerinizi birleştirmek ve yorumlamak zorlaşabilir. Yönlendirme, bu verileri tek bir havuzda toplar ve analiz süreçlerini basitleştirir.

Ön Gereksinimler

Bu rehberdeki adımları takip edebilmek için aşağıdaki ön gereksinimlere sahip olmanız gerekmektedir:

* Ubuntu 14.04 Sunucusu: Apache web sunucusunun kurulu olduğu bir Ubuntu 14.04 sunucusuna erişiminiz olmalı.
* Apache Web Sunucusu: Apache’nin sunucunuzda kurulu ve çalışır durumda olması gerekmektedir.
* mod_rewrite Modülü: Apache’nin URL yeniden yazma (rewrite) modülünün etkinleştirilmiş olması gerekmektedir. Bu modül, yönlendirme kurallarını uygulamak için kritik öneme sahiptir.
* SSH Erişimi: Sunucunuza SSH üzerinden bağlanabilmeniz gerekmektedir.
* Temel Linux Komut Satırı Bilgisi: Dosya sisteminde gezinme, dosya oluşturma/düzenleme gibi temel komutlara aşina olmanız faydalıdır.
* Metin Düzenleyici: nano veya vim gibi bir komut satırı metin düzenleyicisi kullanabilmeniz.
* Root veya Sudo Yetkileri: Yapılandırma dosyalarını değiştirmek için yönetici (root) veya sudo yetkilerine sahip bir kullanıcı olmanız gerekmektedir.
* Alan Adı: Yönlendirme yapacağınız alan adının DNS kayıtlarının hem www.example.com hem de example.com için sunucunuzun IP adresine doğru şekilde işaret ettiğinden emin olun.

Apache Yapılandırmasını Anlamak

Ubuntu üzerindeki Apache, yapılandırma dosyalarını belirli bir hiyerarşi ve dizin yapısı içinde tutar. Bu yapıyı anlamak, yönlendirme kurallarını doğru yere yerleştirmek için hayati önem taşır.

* /etc/apache2/: Apache’nin ana yapılandırma dizinidir.
* /etc/apache2/apache2.conf: Apache’nin ana yapılandırma dosyasıdır. Genellikle global ayarlar ve diğer yapılandırma dosyalarını dahil etme (include) işlemleri burada yapılır.
* /etc/apache2/ports.conf: Apache’nin hangi portları dinleyeceğini (genellikle 80 ve 443) tanımlar.
* /etc/apache2/mods-available/ ve /etc/apache2/mods-enabled/: Apache modüllerinin (örneğin mod_rewrite) yapılandırma dosyalarını ve etkinleştirme bağlantılarını içerir.
* /etc/apache2/sites-available/ ve /etc/apache2/sites-enabled/: Bu dizinler, her bir web sitesi (Virtual Host) için ayrı yapılandırma dosyalarını barındırır. sites-available içinde bulunan bir dosya, a2ensite komutuyla sites-enabled içine bir sembolik bağ (symlink) oluşturularak etkinleştirilir.
* .htaccess Dosyaları: Dağıtılmış yapılandırma dosyalarıdır. Genellikle web sitesinin kök dizininde veya alt dizinlerinde bulunur ve belirli dizinler için Apache davranışını geçersiz kılmaya yarar. Performans açısından Virtual Host yapılandırmasına göre daha yavaş olabilirler.

Yöntem 1: .htaccess Dosyası Kullanarak Yönlendirme

.htaccess dosyaları, özellikle paylaşımlı hosting ortamlarında veya hızlı, dizin bazlı değişiklikler yapmak istediğinizde kullanışlıdır. Ancak, her istekte Apache’nin bu dosyaları okuması gerektiği için performans üzerinde hafif bir etkisi olabilir.

Adım 1: mod_rewrite Modülünü Etkinleştirme

Yönlendirme kurallarını .htaccess dosyası içinde kullanabilmek için öncelikle Apache’nin mod_rewrite modülünü etkinleştirmemiz gerekir.

sudo a2enmod rewrite

Bu komut, mod_rewrite modülünü etkinleştirir. Ardından, Apache sunucusunu yeniden başlatarak değişikliklerin etkili olmasını sağlayın:

sudo service apache2 restart

Adım 2: AllowOverride All Ayarını Yapılandırma

Apache’nin .htaccess dosyalarındaki yönergeleri işlemesi için, ilgili web sitesinin VirtualHost yapılandırmasında veya ana Apache yapılandırmasında AllowOverride All yönergesinin ayarlanmış olması gerekir. Bu ayar genellikle /etc/apache2/sites-available/your_domain.com.conf dosyasında bulunur.

1. Web sitenizin Virtual Host yapılandırma dosyasını açın:

sudo nano /etc/apache2/sites-available/your_domain.com.conf

(Burada your_domain.com.conf yerine kendi alan adınızın yapılandırma dosyasının adını yazmalısınız.)

2. Dosya içinde, DocumentRoot‘unuzu (örneğin /var/www/html/your_domain.com/public_html) gösteren bloğunu bulun. Bu blok genellikle şöyle görünür:


        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Require all granted
    

3. AllowOverride None satırını AllowOverride All olarak değiştirin:


        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Require all granted
    

4. Dosyayı kaydedin (CTRL+O, Enter) ve kapatın (CTRL+X).

5. Apache yapılandırmasında bir hata olup olmadığını kontrol edin ve ardından Apache’yi yeniden başlatın:

sudo apache2ctl configtest
    sudo service apache2 restart

Adım 3: .htaccess Dosyasını Oluşturma veya Düzenleme

Şimdi, web sitenizin kök dizininde bir .htaccess dosyası oluşturabilir veya mevcut olanı düzenleyebilirsiniz.

1. Web sitenizin DocumentRoot dizinine gidin (örneğin /var/www/html/your_domain.com/public_html):

cd /var/www/html/your_domain.com/public_html

2. .htaccess dosyasını açın veya oluşturun:

sudo nano .htaccess

3. Aşağıdaki yönlendirme kurallarını dosyaya ekleyin:

RewriteEngine On
    RewriteCond %{HTTP_HOST} ^www\.your_domain\.com [NC]
    RewriteRule ^(.*)$ http://your_domain\.com/$1 [L,R=301]

Açıklama:
* RewriteEngine On: URL yeniden yazma motorunu etkinleştirir.
* RewriteCond %{HTTP_HOST} ^www\.your_domain\.com [NC]: Bu bir koşuldur. Gelen isteğin Host başlığının www.your_domain.com ile başlayıp başlamadığını kontrol eder. [NC] bayrağı büyük/küçük harf duyarsızlığını sağlar. \. ise noktayı özel karakter olarak değil, gerçek nokta olarak eşleştirmek içindir.
RewriteRule ^(.)$ http://your_domain\.com/$1 [L,R=301]: Bu kural, koşul doğru olduğunda uygulanır.
^(.)$: Gelen URL’nin yol kısmını (domain sonrası) yakalar. (.*) ile yakalanan kısım $1 ile temsil edilir.
* http://your_domain.com/$1: Yakalanan yolu ($1) http://your_domain.com/ adresinin sonuna ekleyerek yönlendirme yapar.
* [L]: “Last” (Son) bayrağı, bu kural uygulandıktan sonra başka hiçbir RewriteRule‘un işlenmemesini sağlar.
* [R=301]: “Redirect” (Yönlendirme) bayrağıdır ve tarayıcıya kalıcı bir yönlendirme (HTTP 301 kodu) göndermesini söyler. Bu, SEO açısından çok önemlidir.

4. Dosyayı kaydedin ve kapatın. Bu yöntem için Apache’yi yeniden başlatmanıza gerek yoktur, çünkü .htaccess değişiklikleri anında uygulanır (eğer AllowOverride All doğru yapılandırılmışsa).

Önemli: your_domain.com yerine kendi alan adınızı yazmayı unutmayın.

Yöntem 2: Virtual Host Yapılandırması Kullanarak Yönlendirme

Virtual Host yapılandırması, özellikle özel sunucularda veya yüksek trafikli sitelerde tercih edilen yöntemdir. Performans açısından .htaccess‘e göre daha avantajlıdır çünkü Apache, yapılandırma dosyalarını yalnızca başlangıçta bir kez yükler ve her istekte tekrar okumaz.

Bu yöntemde iki farklı yaklaşım izlenebilir:

* A) Tek Virtual Host içinde Rewrite Kuralları: www ve non-www için tek bir Virtual Host tanımlayıp içinde yönlendirme kuralları kullanmak.
* B) Ayrı Virtual Hostlar ile Yönlendirme (Önerilen): www ön eki için sadece yönlendirme yapan ayrı bir Virtual Host tanımlamak ve asıl içeriği sunan non-www Virtual Host’u ayrı tutmak. Bu yaklaşım daha temiz ve yönetimi kolaydır.

Biz burada B) Ayrı Virtual Hostlar ile Yönlendirme yaklaşımını kullanacağız.

Adım 1: mod_rewrite Modülünü Etkinleştirme (Gerekliyse)

Eğer Virtual Host içinde RewriteEngine kullanacaksanız, mod_rewrite modülünün etkin olduğundan emin olun (Yöntem 1’deki adımların aynısıdır):

sudo a2enmod rewrite
sudo service apache2 restart

Adım 2: non-www Virtual Host Yapılandırmasını Oluşturma/Düzenleme

Bu Virtual Host, sitenizin ana içeriğini example.com üzerinden sunacaktır.

1. Web sitenizin mevcut yapılandırma dosyasını açın (veya yeni bir tane oluşturun):

sudo nano /etc/apache2/sites-available/your_domain.com.conf

2. Dosyanın içeriğini aşağıdaki gibi düzenleyin. ServerName olarak non-www alan adınızı ve DocumentRoot olarak web sitenizin ana dizinini belirttiğinizden emin olun.


        ServerName your_domain.com
        DocumentRoot /var/www/html/your_domain.com/public_html

        
            Options Indexes FollowSymLinks MultiViews
            AllowOverride None # .htaccess kullanmıyorsanız None olarak bırakın
            Require all granted
        

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
    

3. Dosyayı kaydedin ve kapatın.

Adım 3: www Yönlendirme Virtual Host’unu Oluşturma

Şimdi, www.your_domain.com adresinden gelen tüm istekleri your_domain.com adresine yönlendirecek ayrı bir Virtual Host oluşturacağız.

1. Yeni bir yapılandırma dosyası oluşturun:

sudo nano /etc/apache2/sites-available/www.your_domain.com.conf

2. Aşağıdaki içeriği dosyaya ekleyin. Burada Redirect yönergesini kullanıyoruz, bu daha basit ve doğrudan bir yönlendirme yöntemidir:


        ServerName www.your_domain.com
        Redirect 301 / http://your_domain.com/
        # Alternatif olarak RewriteEngine kullanmak isterseniz:
        # RewriteEngine On
        # RewriteRule ^(.*)$ http://your_domain.com/$1 [L,R=301]

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
    

Açıklama:
* ServerName www.your_domain.com: Bu Virtual Host’un www.your_domain.com için geçerli olduğunu belirtir.
* Redirect 301 / http://your_domain.com/: Bu yönerge, www.your_domain.com adresine gelen tüm istekleri ( / ile belirtilen kök dizin ve altındaki tüm yollar) kalıcı olarak (301) http://your_domain.com/ adresine yönlendirir.

3. Dosyayı kaydedin ve kapatın.

Adım 4: Yeni Virtual Host’u Etkinleştirme ve Apache’yi Yeniden Başlatma

1. Yeni oluşturduğunuz www yönlendirme Virtual Host’unu etkinleştirin:

sudo a2ensite www.your_domain.com.conf

2. Apache yapılandırmasında bir hata olup olmadığını kontrol edin:

sudo apache2ctl configtest

Eğer Syntax OK çıktısını alırsanız, her şey yolundadır.

3. Değişikliklerin etkili olması için Apache’yi yeniden başlatın:

sudo service apache2 restart

Artık www.your_domain.com adresine yapılan tüm HTTP istekleri, http://your_domain.com adresine kalıcı olarak yönlendirilmelidir.

HTTPS (SSL/TLS) ile Yönlendirme

Günümüzde web sitelerinin büyük çoğunluğu güvenlik nedeniyle HTTPS kullanmaktadır. Eğer sitenizde SSL/TLS sertifikası kuruluysa, yönlendirme stratejiniz biraz daha karmaşık hale gelir. Genellikle en iyi uygulama, tüm HTTP isteklerini HTTPS’ye yönlendirmek ve ardından www‘den non-www‘ye yönlendirmeyi HTTPS üzerinde yapmaktır.

Aşağıda, hem HTTP’den HTTPS’ye hem de www‘den non-www‘ye yönlendirmeyi kapsayan iki ana senaryoyu ele alacağız.

Senaryo 1: Virtual Host Yapılandırması ile HTTP’den HTTPS’ye ve www’den Non-www’ye Yönlendirme

Bu yöntem, en sağlam ve performanslı yaklaşımdır. İki ana Virtual Host’a ihtiyacınız olacak: biri port 80 (HTTP) için, diğeri port 443 (HTTPS) için.

1. HTTP (Port 80) Virtual Host Yapılandırması:
Bu Virtual Host, www veya non-www fark etmeksizin tüm HTTP isteklerini doğrudan https://your_domain.com adresine yönlendirecektir.

sudo nano /etc/apache2/sites-available/your_domain.com-le-ssl.conf # veya benzer bir isim

(Genellikle Let’s Encrypt gibi araçlar bu dosyayı otomatik oluşturur, ancak manuel de düzenleyebilirsiniz.)

HTTP Virtual Host’unuzu aşağıdaki gibi yapılandırın:


        ServerName your_domain.com
        ServerAlias www.your_domain.com

        # Tüm HTTP isteklerini HTTPS non-www adresine yönlendir
        Redirect 301 / https://your_domain.com/

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
    

Bu yapılandırma, http://your_domain.com ve http://www.your_domain.com adreslerinden gelen tüm istekleri https://your_domain.com adresine yönlendirecektir.

2. HTTPS (Port 443) Virtual Host Yapılandırması:
Bu Virtual Host, sitenizin ana içeriğini https://your_domain.com üzerinden sunacak ve https://www.your_domain.com adresinden gelen istekleri https://your_domain.com adresine yönlendirecektir.

HTTPS Virtual Host dosyanızı açın:

sudo nano /etc/apache2/sites-available/your_domain.com-ssl.conf # veya benzer bir isim

İçeriğini aşağıdaki gibi düzenleyin (SSL sertifika yollarını kendi sertifika dosyalarınızla değiştirmeyi unutmayın):


    
        ServerName your_domain.com
        ServerAlias www.your_domain.com # www alias'ı burada da olmalı

        DocumentRoot /var/www/html/your_domain.com/public_html

        # SSL Ayarları
        SSLEngine on
        SSLCertificateFile /etc/letsencrypt/live/your_domain.com/fullchain.pem
        SSLCertificateKeyFile /etc/letsencrypt/live/your_domain.com/privkey.pem
        # Diğer SSL ayarları (SSLCipherSuite, SSLProtocol vb.)

        
            Options Indexes FollowSymLinks MultiViews
            AllowOverride All # Eğer .htaccess kullanıyorsanız
            Require all granted
        

        # www'den non-www'ye yönlendirme (HTTPS üzerinde)
        RewriteEngine On
        RewriteCond %{HTTP_HOST} ^www\.your_domain\.com [NC]
        RewriteRule ^(.*)$ https://your_domain\.com/$1 [L,R=301]

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
    
    

Açıklama:
* ServerName your_domain.com: Ana domain.
* ServerAlias www.your_domain.com: www ön ekli domainin de bu Virtual Host tarafından işlenmesini sağlar.
* RewriteEngine On, RewriteCond, RewriteRule: Bu kurallar, https://www.your_domain.com adresine gelen istekleri https://your_domain.com adresine yönlendirir.

3. Dosyaları kaydedin ve kapatın.

4. Apache yapılandırmasını kontrol edin ve yeniden başlatın:

sudo apache2ctl configtest
    sudo service apache2 restart

Bu yapılandırma ile, kullanıcılar http://your_domain.com, http://www.your_domain.com veya https://www.your_domain.com adreslerinden hangisini girerlerse girsinler, nihayetinde https://your_domain.com adresine yönlendirileceklerdir.

Senaryo 2: .htaccess Dosyası ile HTTP’den HTTPS’ye ve www’den Non-www’ye Yönlendirme

Bu yöntem, Virtual Host yapılandırmasına erişiminizin olmadığı paylaşımlı hosting ortamlarında veya hızlı bir çözüm aradığınızda kullanılabilir. Ancak, .htaccess dosyalarının işlenmesi için ilgili Virtual Host’larda AllowOverride All ayarının hem port 80 hem de port 443 için etkinleştirildiğinden emin olmanız gerekir.

1. Web sitenizin DocumentRoot dizinine gidin:

cd /var/www/html/your_domain.com/public_html

2. .htaccess dosyasını açın veya oluşturun:

sudo nano .htaccess

3. Aşağıdaki yönlendirme kurallarını dosyaya ekleyin:

RewriteEngine On

    # HTTP'den HTTPS'ye yönlendirme (önce bu kural çalışır)
    RewriteCond %{HTTPS} off
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

    # www'den non-www'ye yönlendirme (HTTPS sonrası)
    RewriteCond %{HTTP_HOST} ^www\.your_domain\.com [NC]
    RewriteRule ^(.*)$ https://your_domain\.com/$1 [L,R=301]

Açıklama:
* İlk RewriteCond ve RewriteRule çifti, gelen isteğin HTTPS olmadığını (%{HTTPS} off) kontrol eder ve eğer HTTP ise, isteği aynı domain ve yolla HTTPS’ye yönlendirir. %{HTTP_HOST} ve %{REQUEST_URI} değişkenleri, orijinal domain ve yolu korur.
* İkinci RewriteCond ve RewriteRule çifti, isteğin www.your_domain.com adresinden geldiğini kontrol eder (bu artık HTTPS üzerinden gelen bir istek olabilir) ve https://your_domain.com adresine yönlendirir.

4. Dosyayı kaydedin ve kapatın.

5. Bu .htaccess kurallarının çalışabilmesi için, hem HTTP (port 80) hem de HTTPS (port 443) Virtual Host’larınızda AllowOverride All yönergesinin ilgili DocumentRoot dizini için ayarlandığından emin olun. Gerekirse Apache’yi yeniden başlatın.

Bu .htaccess kuralları, tüm yönlendirme mantığını tek bir yerde toplar.

Yönlendirmelerinizi Test Etme

Yönlendirme kurallarını uyguladıktan sonra, her şeyin beklendiği gibi çalıştığından emin olmak için kapsamlı testler yapmanız çok önemlidir.

1. Tarayıcı Testi:
* Tarayıcınızın önbelleğini temizleyin.
* Aşağıdaki URL’leri deneyin ve her birinin nihayetinde https://your_domain.com (veya sadece http://your_domain.com eğer SSL kullanmıyorsanız) adresine yönlendirildiğinden emin olun:
* http://your_domain.com
* http://www.your_domain.com
* https://www.your_domain.com (eğer SSL kullanıyorsanız)

2. curl Komutu ile Test:
curl komutu, HTTP başlıklarını kontrol etmek için harika bir araçtır. Özellikle 301 Moved Permanently durum kodunu görmeniz önemlidir.

* www ön ekli HTTP isteği için:

curl -I http://www.your_domain.com

Çıktıda HTTP/1.1 301 Moved Permanently veya HTTP/1.1 302 Found (eğer geçici yönlendirme yaptıysanız ki yapmamalısınız) ve Location: http://your_domain.com/ (veya https://your_domain.com/ eğer HTTPS’ye de yönlendiriyorsanız) görmelisiniz.

* non-www ön ekli HTTP isteği için:

curl -I http://your_domain.com

Eğer sadece www‘den non-www‘ye yönlendiriyorsanız HTTP/1.1 200 OK görmelisiniz. Eğer HTTP’den HTTPS’ye de yönlendiriyorsanız, 301 Moved Permanently ve Location: https://your_domain.com/ görmelisiniz.

* www ön ekli HTTPS isteği için (eğer SSL kullanıyorsanız):

curl -I https://www.your_domain.com

301 Moved Permanently ve Location: https://your_domain.com/ görmelisiniz.

* non-www ön ekli HTTPS isteği için (eğer SSL kullanıyorsanız):

curl -I https://your_domain.com

HTTP/1.1 200 OK görmelisiniz.

Yaygın Sorun Giderme

Yönlendirmelerde karşılaşabileceğiniz bazı yaygın sorunlar ve çözümleri:

* mod_rewrite Etkin Değil: Eğer .htaccess veya Virtual Host içinde RewriteEngine kullanıyorsanız, sudo a2enmod rewrite komutuyla modülün etkinleştirildiğinden ve Apache’nin yeniden başlatıldığından emin olun.
* AllowOverride All Ayarı Eksik: .htaccess dosyaları çalışmıyorsa, ilgili VirtualHost‘un bloğunda AllowOverride All ayarının yapıldığından emin olun ve Apache’yi yeniden başlatın.
* Sözdizimi Hataları: Apache yapılandırma dosyalarında veya .htaccess dosyasında sözdizimi hataları olabilir. sudo apache2ctl configtest komutuyla hataları kontrol edin.
* Yanlış Alan Adları: Yönlendirme kurallarında your_domain.com yerine kendi alan adınızı doğru yazdığınızdan emin olun. Noktaları \. şeklinde kaçırdığınızdan emin olun.
* Tarayıcı Önbelleği: Tarayıcınız yönlendirmeleri önbelleğe almış olabilir. Test ederken tarayıcı önbelleğini temizleyin veya gizli (incognito) mod kullanın.
* Apache Yeniden Başlatılmadı: Virtual Host yapılandırma dosyalarında yaptığınız değişikliklerin etkili olması için Apache’yi her zaman yeniden başlatmanız gerekir (sudo service apache2 restart).
* Çakışan Kurallar: Birden fazla .htaccess dosyası veya farklı Virtual Host’lar arasında çakışan yönlendirme kuralları olabilir. En üst düzeydeki veya en spesifik kuralın beklendiği gibi çalıştığından emin olun.
* DNS Sorunları: Alan adınızın hem www hem de non-www versiyonları için DNS A kayıtlarının sunucunuzun IP adresine doğru şekilde işaret ettiğinden emin olun. Aksi takdirde, Apache isteği doğru bir şekilde alamayacaktır.

En İyi Uygulamalar ve Dikkat Edilmesi Gerekenler

* Daima 301 Kalıcı Yönlendirme Kullanın: SEO açısından 301 Moved Permanently durum kodu, arama motorlarına sayfanın kalıcı olarak taşındığını bildirir ve tüm link gücünü yeni adrese aktarır. 302 Found (geçici yönlendirme) kullanmaktan kaçının.
* Virtual Host’u .htaccess‘e Tercih Edin: Mümkünse, yönlendirme kurallarını Virtual Host yapılandırması içinde tanımlayın. Bu, daha iyi performans, daha kolay yönetim ve daha iyi güvenlik sağlar.
* HTTPS’yi En Başa Koyun: Eğer SSL kullanıyorsanız, tüm HTTP trafiğini önce HTTPS’ye yönlendirin, ardından www‘den non-www‘ye yönlendirmeyi HTTPS üzerinde yapın. Bu, güvenliğin en üst düzeyde tutulmasını sağlar.
* Kapsamlı Test Edin: Herhangi bir değişiklik yaptıktan sonra, tüm olası senaryoları (HTTP, HTTPS, www, non-www, alt sayfalar) test ettiğinizden emin olun.
* Yapılandırma Dosyalarını Yedekleyin: Önemli Apache yapılandırma dosyalarını değiştirmeden önce daima yedeklerini alın.
* Arama Motorlarını Bilgilendirin: Yönlendirmeleri yaptıktan sonra Google Search Console gibi araçları kullanarak tercih ettiğiniz domaini (örneğin example.com) arama motorlarına bildirin.

Sonuç

www ön ekinden non-www ön ekine yönlendirme yapmak, web sitenizin SEO performansı, kullanıcı deneyimi ve genel teknik sağlığı için kritik bir adımdır. Bu rehberde, Ubuntu 14.04 üzerinde Apache kullanarak bu yönlendirmeyi hem .htaccess dosyalarıyla hem de Virtual Host yapılandırmasıyla nasıl yapacağınızı detaylı bir şekilde öğrendiniz. Ayrıca, HTTPS’nin işin içine girdiği senaryoları ve yaygın sorun giderme ipuçlarını da ele aldık.

Unutmayın ki her web sitesi kurulumu benzersiz olabilir, bu nedenle adımları kendi özel durumunuza göre uyarlamanız ve her değişiklikten sonra dikkatlice test etmeniz önemlidir. Doğru yapılandırılmış bir yönlendirme, sitenizin arama motorlarında daha iyi sıralanmasına ve ziyaretçileriniz için daha tutarlı bir deneyim sunmasına yardımcı olacaktır.

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Gönder

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.
Exit mobile version