.htaccess - cara memaksa "www." dengan cara yang umum?

Feb 06 2011

Ini akan berubah domain.commenjadi 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

250 Gumbo Feb 10 2011 at 15:13

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 onatau off, sehingga %{HTTPS}sadalah baik onsatau offsdan dalam hal onsini scocok). Bagian substitusi RewriteRulekemudian hanya menggabungkan bagian informasi ke URL lengkap.

44 MartinDrapeau Feb 06 2011 at 21:36

Ini akan melakukannya:

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
4 ClickForWebs Dec 17 2014 at 09:13

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]
3 johnmccarthy Nov 24 2013 at 03:02

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]
1 RoUS Feb 06 2011 at 21:40

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]
1 AmitVerma Jul 01 2016 at 04:12
RewriteEngine On

RewriteCond %{HTTP_HOST} ^[^.]+\.[^.]+$
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [NE,L,R=301]

Ini mengalihkan example.comke www.example.commengecualikan subdomain.

RickHellewell Jul 12 2018 at 22:26

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)