Cara setting file .htaccess untuk redirect www menjadi non-www (dan sebaliknya)

htaccessAnda pasti sering menjumpai blog atau website yang alamatnya ada yang memakai “www” di depannya dan yang tidak pakai www. Salah satu cara untuk membuat blog atau website kita memiliki “embel-embel” www maupun tidak adalah dengan cara membuat file .htaccess di folder utama (root) di hosting yang kita gunakan.

Langkah-langkahnya

1. Pertama kali, buat file baru dengan nama “.htaccess” (tanpa tanda kutip)
2. Jika ingin memakai embel-embel www, isikan kode berikut :

Spoiler

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

[collapse]

Penjelasan:
Baris pertama untuk menentukan kondisi; hanya jika kondisi ini terpenuhi maka baris kedua akan diproses.
Kondisi yang dimaksud dapat diterjemahkan sebagai berikut : “jika hostname tidak dimulai dengan www.”
Regular expression !^www\. artinya:
! = not (tidak)
^ = start (dimulai dengan)
\. = . (titik) (backslash adalah escape character, sebab dot atau titik memiliki arti khusus didalam regular expression, oleh sebab itu harus ditambahkan escape character)

Jadi !^www\. artinya “tidak dimulai dengan www.”

Baris kedua merupakan rewrite rule yang sebenarnya (juga memakai regular expression):
^(.*)$ artinya : apapun!
Simbol (.*) berarti kosong atau beberapa karakter (dot atau titik artinya karakter apapun, asterisk atau bintang artinya nol atau lebih).
Tanda $ artinya akhir/selesai.

Kemudian kode ini:
http://www.%{HTTP_HOST}/$1 [R=301,L]

%{HTTP_HOST} akan diganti menjadi hostname (contoh infogaptek.com).
$1 berarti apapun (alamat artikel yang ditulis di dalam URL)
[R=301,L] artinya permanent redirect (HTTP 301 code), dan jangan memproses rewrite rule selanjutnya (jika masih ada lagi baris dibawahnya).

3. Sebaliknya, jika tidak ingin memakai www maka kodenya:

Spoiler

RewriteEngine On
RewriteCond %{HTTP_HOST} !^my-domain\.com$ [NC]
RewriteRule ^(.*)$ http://my-domain.com/$1 [R=301,L]

[collapse]

Keterangan : my-domain diganti dengan nama domain anda (misal infogaptek)