SSL sertifikası kurduktan sonra internet sitesi hem HTTP bağlantılardan hem de HTTPS bağlantılardan erişilebilir olmaktadır. Bu noktada güvenliği sağlamak için transferin sadece şifreli olarak aktarılması gerekmektedir. HTTP bağlantısını HTTPS üzerine yönlendirmek için .htaccess dosyasında yapılması gereken ufak tefek değişiklikler yapılması gerekmektedir. Günümüzün popüler tarayıcıları Chrome ve Firefox gibi tarayıcılar SSL sertifikası olmayan siteleri güvenli değil şekilde işaretlemektedir ve bu da sitenin imajını olumsuz yönde etkilemektedir. Ayrıca HTTP bağlantılar sitenin SEO performansını da önemli ölçüde düşürmektedir. SSL sertifikası ile internet sitesi ile istemci arasındaki bağlantı şifrelenmektedir ve bu sayede üçüncü taraflar tarafından dinlenememektedir. Bu da kullanıcı bilgilerinin güvende kalmasını sağlamaktadır. Günümüzde birçok hosting firması SSL sertifikası sağlamaktadır ve bu sayede kullanıcı ile sunucu arasında güvenli veri alışverişi gerçekleştirilebilmektedir. 

Tüm Trafiğin HTTPS Üzerinden Yönlendirmek

İnternet sitesinin .htaccess dosyasından yapılabilecek birçok fonksiyondan bir tanesi de 301 yönlendirmeleridir. 301 yönlendirmesi kalıcı yönlendirmedir ve bir internet sitesi için çoğu zaman tek tercih edilen yönlendirmedir. Bu yönlendirmeyi aktif hale getirerek tüm trafiğin HTTPS üzerinden akmasını sağlamak mümkün olmaktadır. Yönlendirmeyi yapmak için aşağıdaki adımları uygulamak yeterlidir. Bu değişiklikleri yapmak için kullanıcı hesabının dizin erişimine sahip olması gerekmektedir.

Dosya yöneticisinden public_html klasörü içerisindeki .htaccess dosyasına giriş yapmak gerekmektedir. Dosyanın bu dizinde olmadığı durumlarda gizli dosyaları gösterme açılmalıdır. Bu dosya içerisinde RewriteEngine On satırı bulunmaktadır bu satırın altına aşağıdaki kodlar eklenmelidir. 

RewriteEngine On

RewriteCond %{HTTPS} !=on

RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]

Header always set Content-Security-Policy “upgrade-insecure-requests;”

Bu satırları yapıştırdıktan sonra dosyayı kaydetmek yeterli olmaktadır. Ancak burada dikkat edilmesi gereken nokta “RewriteEngine On“ satırıdır. Bu satırın tekrar etmemesi gerekmektedir. Bu yöntemle beraber internet sitesinin görsel, css gibi tüm kaynakları HTTPS üzerinden yönlendirilmektedir. 

wordpress ile https yönlendirmesi yapma

WordPress ile HTTPS Yönlendirmesi Yapma

WordPress sitelerde yönlendirme yapmak hemen hemen önceki işleme oldukça benzerdir. Varsayılan WordPress kodunu içeren .htaccess dosyalarında üste ya da alta aşağıdaki satırları yazmak yeterli olmaktadır. 

#BEGIN WordPress

#END WordPress

Bu satırların yorum etiketlerinin arasına yazılmadığından emin olmak gerekmektedir. Yorum etiketleri arasında yer alan kodlar çalışmamaktadır. SSL sertifikası aktif olsa da WordPress siteye HTTP linki üzerinden erişim mümkün olmaktadır. WordPress sitelerde HTTP bağlantıları HTTPS bağlantıya yönlendirmek için .htaccess dosyasında da üstteki değişikliği yapmak yeterlidir. Bu değişiklik yapıldıktan sonra varsayılan WordPress kodu ile beraber .htaccess dosyası aşağıdaki gibi gözükmektedir. 

RewriteEngine On

RewriteCond %{HTTPS} !=on

RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]

Header always set Content-Security-Policy “upgrade-insecure-requests;”

# BEGIN WordPress

# The directives (lines) between `BEGIN WordPress` and `END WordPress` are

# dynamically generated, and should only be modified via WordPress filters.

# Any changes to the directives between these markers will be overwritten.

<IfModule mod_rewrite.c>

RewriteEngine On

RewriteBase /

RewriteRule ^index\.php$ – [L]

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule . /index.php [L]

</IfModule>

# END WordPress

tek bir alan adı üzerinden https yönlendirmesi yapma

Tek Bir Alan Adı Üzerinden HTTPS Yönlendirmesi Yapma

Siteye gelen tüm bağlantıların HTTPS’e yönlendirildiği gibi tek bir alan adı için de bu işlem gerçekleştirilebilmektedir. Özellikle birden fazla alan adı olan kişilerin bu yönlendirme ile tek bir alan adına HTTPS yönlendirilmesi yapacağı zaman .htaccess dosyasına aşağıdaki satırları yerleştirmesi yeteli olmaktadır. 

RewriteEngine On 

RewriteCond %{SERVER_PORT} 80 

RewriteRule ^(.*)$ https://www.alanadi1.com/$1 [R=301,L,NE]

Header always set Content-Security-Policy “upgrade-insecure-requests;”

Burada dikkat edilmesi gereken nokta hangi alan adı için yönlendirme yapılacaksa RewriteRule satırına o adresin yazılmasıdır. Bu satırlar eklendiğinde WordPress siteler için .htaccess dosyası aşağıdaki gibi gözükmektedir. 

writeEngine On 

RewriteCond %{SERVER_PORT} 80 

RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L,NE]

Header always set Content-Security-Policy “upgrade-insecure-requests;”

# BEGIN WordPress

# The directives (lines) between `BEGIN WordPress` and `END WordPress` are

# dynamically generated, and should only be modified via WordPress filters.

# Any changes to the directives between these markers will be overwritten.

<IfModule mod_rewrite.c>

RewriteEngine On

RewriteBase /

RewriteRule ^index\.php$ – [L]

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule . /index.php [L]

</IfModule>

# END WordPress

Sadece Bir Klasör HTTPS Yönlendirmesi Yapmak

Alan adlarının dışında belirli bir dizine de yönlendirme yapmak mümkün olmaktadır. Bu işlem için de .htaccess dosyasında değişiklik yapmak yeterli olmaktadır. Tek bir dosyaya ya da aynı anda birden fazla dosyaya yönlendirme yapmak mümkündür. Bunun için aşağıdaki kodları .htaccess dosyasına eklemek yeterlidir. 

RewriteEngine On 

RewriteCond %{HTTPS} off 

RewriteRule ^(klasör1|klasör2|klasör3) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

Buradaki klasör isimlerinin doğru olduğundan emin olmak gerekmektedir. Aksi takdirde kullanıcılar bu klasörlere SSL bağlantısı olmadan erişim sağlayabilir. Bu kuralı getirmeden önce klasörlerin doğruluğundan emin olmak için “alanadi.com/klasör1” adresini ziyaret etmek kuralın doğruluğundan emin olmayı sağlamaktadır.