WordPress’te HTTP’yi HTTPS’ye zorlama (Apache Server)

Başlatan samet, Ksm 27, 2019, 07:45 ös

« önceki - sonraki »
Sitenizi her zaman HTTPS ile yüklemelisiniz. Web siteleriniz ve site kullanıcılarınız arasındaki veri bütünlüğünüzü korumanın yanı sıra, HTTPS artık Geolocation API gibi birçok yeni tarayıcı API'si için bir gerekliliktir .

HTTPS ayrıca Google SERP sıralama sinyalinde bir miktar ağırlık taşıyor . Bu nedenle sitenizin her zaman HTTPS'den yüklenmesini sağlamak çok önemlidir. Size bu derste Apache ile nasıl yapacağınızı göstereceğiz.

Bu adıma geçmeden önce, SSL sertifikası yüklü ve sunucuya yüklenmiş olduğundan emin olun.
Her şey ayarlandıysa, bir sonraki adıma geçebilirsiniz.

HTTPS'ye HTTP

WordPress web sitenize doğrudan erişilebiliyorsa http://www.domain.comve tüm ziyaretçileri HTTP'den HTTPS'ye yönlendirmek istiyorsanız, aşağıdaki .htaccess kodlarından birini deneyin.

Seçenek 1:

RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

Seçenek 2:

RewriteEngine On
RewriteCond %{SERVER_PORT} ^80$
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

Açıklama

Hem seçenek 1 ve 2 kimse erişen yönlendirir http://www.domain.comiçinhttps://www.domain.com

Seçenek 1 kodları, bağlantının TLS / SSL olup olmadığını, Seçenek 2 kodları ise sitenin 80varsayılan olarak HTTP'nin bağlantı noktası numarası olan bağlantı noktasında çalışıp çalışmadığını kontrol eder .

Not: Seçenek 1 kodlarını kullanmak genellikle tercih edilir. Sözdizimi daha etkileyicidir ve port numarasına bakılmaksızın HTTPS'ye yönlendirilir, çünkü site teknik olarak HTTP dış portu ile yüklenebilir 80.

"www olmayan"> "www" ve HTTP> HTTPS
Eğer "www-olmayan" kelimesini "www" ve HTTP'den HTTPS'ye zorlamak istiyorsanız, yukarıdaki .htaccess kodları yeterli olmayacaktır.

Amacınız aşağıdaki URL'leri yönlendirmekse, işleri perspektif içine almak için:

  • http://www.domain.com
  • http://domain.com

için:

  • https://www.domain.com

O zaman aşağıdaki .htaccess kodlarını kullanmanız gerekecektir.

RewriteEngine On
RewriteCond %{HTTP_HOST} ^domain.com$ [NC]
RewriteRule (.*) http://www.domain.com/$1 [R=301,L]
 
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

Açıklama
İlk önce, herhangi bir "www-olmayan" kelimesini "www" ye yönlendirir, sonra nihai sonucun şu olduğundan emin olarak HTTPS'yi kontrol eder: www + HTTPS.

"www olmayan"> "www" ve HTTP> HTTPS (alt klasörde)

Şimdi, eğer bizim gibi - WordPress web sitenizi bir alt klasörde (yani www.domain.com/blog/) barındırıyorsanız, yukarıda belirtilen .htaccess kodları mükemmel çalışmayacaktır.

Buradaki amaç, tüm URL'leri (ana sayfa veya posta sayfalarından bağımsız olarak) bir www + HTTPS URL'sine yönlendirmektir.

Diyelim biz "yönlendirmek gerekir URL'lerin tüm olasılıklar bakmak gelen "ve "yönlendirme için ".

Durum 1
Aşağıdaki tüm URL'leri yönlendirme yapmamız gerekiyor:

  • http://domain.com
  • http://www.domain.com
  • http://domain.com/blog/
  • http://www.domain.com/blog/

URL birleştirmek için:

  • https://www.domain.com/blog/

Durum 2
ve URL'leri şuradan gönderin:

  • http://domain.com/blog/example-page/
  • http://www.domain.com/blog/example-page/

için:

  • https://www.domain.com/blog/example-page/

WordPress'iniz alt klasörde (Eg /blog/) barındırıldığında , olasılıkla iki .htaccess dosyanız, yani bir alt klasörün dışında bir .htaccess dosyası ve bir tane de WordPress'in yüklü olduğu alt klasörün içinde olacaksınız. Ve ikisini de değiştirmemiz gerekecek.

.htaccess
Blog/
blog / .htaccess

.htaccess alt klasörü dışında
Aşağıdaki kodları alt klasörün dışındaki .htaccess dizinine yerleştirin.

RewriteEngine On
### non-www to www, http to https
RewriteCond %{HTTPS} !on
RewriteCond %{HTTP_HOST} ^domain.com$ [OR]
RewriteRule (.*) https://www.domain.com/$1 [R=301,L]
 
### subfolder
RewriteRule ^$ /blog/ [R=301]

İşte kodun bu bölümünün yaptığı. İlk olarak, alanın HTTPS ile www'ye yönlendirildiğinden emin olunur, ardından alt klasöre yönlendirilir. Bu yukarıda belirtilen 1. koşulu karşılayacaktır, ancak en azından henüz # 2 koşulu için çalışmayacaktır.

.htaccess alt klasörün içinde
Daha sonra, alt klasörün içindeki .htaccess kodunu değiştirmemiz gerekecek.

Varsayılan olarak, şuna benzer bir şey olmalı:

# BEGIN WordPress
<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

Aşağıdaki .htaccess kodunu üste ve "# BEGIN WordPress" ten önce koyun

<IfModule mod_rewrite.c>
RewriteEngine On
## http to https
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>

Bu iki kod seti ile, girilen URL'lerin www ve HTTPS'ye eklenmesini sağlayacaktır.

Bunu canlı sitenize uygulamamanızı tavsiye ederim. Bir sahnede / test sitesinde sayısız kez deneyin ve yaymadan önce istediğiniz sonuçları aldığınızdan emin olun.

Yönlendirmenin doğru olduğundan emin olmak için bir şey daha, her teste başlamadan önce tarayıcı çerezlerini ve önbelleği temizlediğinizden emin olun.

Yasal Uyarı

İçerik sağlayıcı paylaşım sitesi olarak hizmet veren webtiryaki.com sitemizde 5651 sayılı kanunun 8. maddesine ve T.C.Knın 125. maddesine göre tüm üyelerimiz yaptıkları paylaşımlardan kendileri sorumludur.webtiryaki.com hakkında yapılacak tüm hukuksal şikayetleri İletişim sayfamızdan bize bildirdikten en geç 3 (üç) iş günü içerisinde ilgili kanunlar ve yönetmelikler çerçevesinde tarafımızca incelenerek gereken işlemler yapılacak ve site yöneticilerimiz tarafından bilgi verilecektir.