.htaccess - cara memaksa "www." dengan cara yang umum?
Ini akan berubah domain.com
menjadi www.domain.com
:
# Force the "www."
RewriteCond %{HTTP_HOST} !^www\.domain\.com$ [NC] RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]
Bagaimana cara mengganti bagian "domain" agar dapat berfungsi di domain mana pun ?
Jawaban
Saya akan menggunakan aturan ini:
RewriteEngine On
RewriteCond %{HTTP_HOST} !=""
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Kondisi pertama memeriksa apakah nilai Host tidak kosong (dalam kasus HTTP / 1.0); yang kedua memeriksa apakah nilai Host tidak dimulai dengan www.
; pemeriksaan ketiga untuk HTTPS ( %{HTTPS}
adalah baik on
atau off
, sehingga %{HTTPS}s
adalah baik ons
atau offs
dan dalam hal ons
ini s
cocok). Bagian substitusi RewriteRule
kemudian hanya menggabungkan bagian informasi ke URL lengkap.
Ini akan melakukannya:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
Jika Anda ingin mengalihkan semua permintaan non-www ke situs Anda ke versi www, yang perlu Anda lakukan hanyalah menambahkan kode berikut ke file .htaccess Anda:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
Ini tidak akan berfungsi dengan subdomain.
domain.com dengan benar dialihkan ke www.domain.com
tapi
images.domain.com dialihkan ke www.images.domain.com
Daripada memeriksa apakah subdomainnya adalah "bukan www", periksa apakah ada dua titik:
RewriteCond %{HTTP_HOST} ^(.*)$ [NC]
RewriteCond %{HTTP_HOST} !^(.*)\.(.*)\. [NC]
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ HTTP%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Kalimat berikut ini harus mengawali 'www' ke permintaan apa pun yang tidak memilikinya, dan mengalihkan permintaan yang diedit ke URI baru.
RewriteCond "%{HTTP_HOST}" "!^www\." [NC]
RewriteCond "%{HTTP_HOST}" "(.*)"
RewriteRule "(.*)" "http://www.%1$1" [R=301,L]
RewriteEngine On
RewriteCond %{HTTP_HOST} ^[^.]+\.[^.]+$
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [NE,L,R=301]
Ini mengalihkan example.com
ke www.example.com
mengecualikan subdomain.
Ini adalah pertanyaan lama, dan ada banyak cara berbeda untuk melakukannya. Jawaban terlengkap, IMHO, ada di sini:https://gist.github.com/vielhuber/f2c6bdd1ed9024023fe4. (Menempel dan memformat kode di sini tidak berhasil untuk saya)