bagaimana cara mengalihkan semua permintaan ke https dan non-www dalam satu lompatan?
Saya ingin mengarahkan semua permintaan ke https dan non-www dalam satu lompatan untuk halaman utama / beranda dan sub halaman lainnya. Saya menggunakan htaccess berikut. sumber
RewriteEngine On
RewriteBase /
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} ^mytesting\.com$ [OR] RewriteCond %{HTTP_HOST} ^www\.mytesting\.com$
RewriteRule .* https://www.mytesting.com%{REQUEST_URI} [R=301,L]
Tapi saya mendapat pengalihan berikut
Saya ingin seperti ini:
http://mytesting.com > https://mytesting.com
http://www.mytesting.com > https://mytesting.com
http://mytesting.com/faq > https://mytesting.com/faq
https://mytesting.com > https://mytesting.com
http://www.mytesting.com > https://mytesting.com
http://www.mytesting.com/faq > https://mytesting.com/faq
https://mytesting.com/faq > https://mytesting.com/faq
Jawaban
2 anubhava
Anda dapat menggunakan aturan ini untuk kedua pengalihan dalam satu aturan:
RewriteCond %{HTTP_HOST} ^www\. [NC,OR]
RewriteCond %{HTTPS} !on
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [R=301,L,NE]
Berikut penjelasan dari aturan ini:
RewriteCond %{HTTP_HOST} ^www\. [NC,OR]
: jikaHOST_NAME
dimulai denganwww.
[NC,OR]
: Abaikan kecocokan kasus danOR
kondisi selanjutnyaRewriteCond %{HTTPS} !on
:HTTPS
tidak diaktifkanRewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
: Ketentuan ini akan selalu cocok karena di siniwww.
adalah pencocokan opsional. Ini digunakan untuk menangkap substringHTTP_HOST
tanpa memulaiwww.
dengan menggunakan(.+)
pola dalam grup penangkapan # 1 (untuk direferensikan kembali%1
nanti). Perhatikan bahwa(?:..)
ini adalah grup non-penangkap.RewriteRule ^ https://%1%{REQUEST_URI} [R=301,L,NE]
:^
akan selalu cocok. Aturan ini akan dialihkan kehttps://%1%{REQUEST_URI}
denganR=301
kode. Dari mana%1
referensi balik kelompok penangkapan # 1RewriteCond
, seperti yang disebutkan di atas.
Kiat Pemilik Anjing yang Bermanfaat: Mengapa Penting untuk Membiarkan Anjing Anda Mengendus di Jalan
Taylor Sheridan Baru Menambahkan 1 Bintang 'Yellowstone' Favoritnya ke Pemeran 'Lawmen: Bass Reeves'