pacman, rainbows, and roller s
Home » Article » Seo » Redirect Url Dengan Www Atau Tanpa Www Menggunakan .htaccess Php Dan Javascript

Redirect url dengan WWW atau tanpa WWW menggunakan .htaccess PHP dan JavaScript

f_huda19   25 Februari 2016   14:30:11   0 Suka   Favorit

redirect www dengan .htaccess, redirect www dengan php, redirect www dengan javascript

Kenapa kita perlu menerapkan alamat website supaya hanya dapat diakses melalui www atau non-www? Beberapa orang tidak terlalu suka dengan domain yang berawlan www, tapi itu bukan menjadikan alasan mendasar bagi kita untuk menerapkan redirect domain dari www ke non-www atau sebaliknya. Ada hal yang lebih penting dari sekedar suka atau tidak suka.

Yang pertama adalah berkaitan dengan cookie, seperti yang kita tahu bahwa cookie tersimpan di browser (client) karena sifatnya tersebut cookie sangat sensitif terhadap penggunaan domain dan subdomain. Jangan harap Anda dapat mengambil cookie yang tersimpan dengan domain berawalan www sedangkan di address bar yang Anda masukkan adalah domain tanpa www. Kecuali jika sebelumnya telah diberi cookie dengan key yang sama.

Tentu hal tersebut sangat merugikan terlebih jika website kita hanya mengijinkan user terdaftar yang dapat melihat konten situs. Karena pada umumnya user tidak begitu memperhatikan domain dengan awalan www atau sebaliknya. Memang dampaknya tidak terlalu signifikan, tapi menurut Admin bolak-balik mengisikan form login itu sangat merepotkan.

Berikutnya adalah untuk mengoptimalkan dari segi SEO, nah.. kalau tidak kita pusatkan di satu domain pasti hasil penelusuran mesin pencarian akan terjadi duplikat konten, hal tersebut bisa saja terjadi ketika artikel situs kita ter-index sebagai url yang berawalan www dan tanpa www.

Saya rasa sudah cukup untuk menjelaskan alasan kenapa kita perlu meredirect url ke www atau non-www. Untuk menyelesaikan hal tersebut kita dapat menggunakan 3 script secara berbeda. Silahkan pilih salah satu yang menurut Anda paling manjur, efektif, dan efisien.

Contoh yang satu ini merupakan cara yang paling efektif dibandingkan dengan yang lain. Jika di hosting Anda memungkinkan untuk mengakses mod_rewrite, script dibawah ini sangat direkomendasikan untuk di pakai.

Redirect Dari WWW Ke Non-WWW Dengan .htaccess

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.+)$
RewriteRule (.*) http://%1/$1 [R,L]
</IfModule>

Redirect Dari Non-WWW Ke WWW Dengan .htaccess

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule (.*) http://www.%{HTTP_HOST}/$1 [R,L]
</IfModule>
  • Pertama kita set RewriteEngine dengan mode On.

  • Selanjutnya masuk ke RewriteCond. Disitu ada %{HTTP_HOST} yang berfungsi untuk mengambil domain.

  • Tanda caping sebelum www adalah pola Regex seperti biasa, yang fungsinya untuk mencocokkan penjangkaran di awal string, kalau tanda seru di depan tanda caping berarti negasi atau ingkaran.

  • Berlanjut ke RewriteRule. Titik dan asterisk yang di kurung itu juga pola Regex untuk mengambil semua url. Yang artinya cocok dengan string apapun dan bersifat opsional.

  • Selanjutnya kita set domain kita dengan %1 yang berasal dari kurung (.+) diatas (untuk redirect non-www) atau %{HTTP_HOST} (untuk redirect www). Dan diikuti oleh $1 (berasal dari regex di depannya tadi) supaya tidak ter-redirect ke halaman index jika terdapat path atau query di url.

  • Terakhir adalah flag [R,L]R berarti memeriltahkan untuk me-redirect dan L untuk menyatakan script kita telah selesai (Last).

Ini adalah alternatif jika server tempat kita bernaung tidak mengijinkan untuk mengedit mod_rewrite.

Redirect Dari WWW Ke Non-WWW Dengan PHP

<?php
$url= $_SERVER['REQUEST_URI']; // mengambil url
$host= $_SERVER['HTTP_HOST']; // mengambil domain
if(preg_match('|^www\.(.+)$|', $host, $real_host)) { // cek apakah di variabel $host terdapat www
$url= $real_host[1].$url; // jika ada maka array $real_host akan di ambil
header('Location: http://'.$url); }
?>

Redirect Dari Non-WWW Ke WWW Dengan PHP

<?php
$host= $_SERVER['HTTP_HOST']; // mengambil domain
$url= $_SERVER['REQUEST_URI']; // mengambil url
if(!preg_match('|^www\.|', $host)) { // domain tanpa www akan diproses dahulu
$url= 'www.'.$host.$url; // menambahkan www. di awal domain
header('Location: http://'.$url); }
?>

Cara ini merupakan alternatif terakhir jika hosting yang kita gunakan tidak mendukung PHP. Salah satu kelemahan jika menggunakan JavaScript adalah terkadang respon terhadap client begitu lambat dan JavaScript dapat di nonaktifkan lewat browser.

Redirect Dari WWW Ke Non-WWW Dengan JavaScript

var host= window.location.host; // mengambil domain
var href= window.location.href; // mengambil url
if(host.indexOf('www.') == 0) { // cek apakah domain terdapat www melalui index
var url= href.replace('www.', ''); // jika terdapat www akan dihapus dulu
window.location= url; }

Redirect Dari Non-WWW Ke WWW Dengan JavaScript

var host= window.location.host; // mengambil domain
var href= window.location.href; // mengambil url
if(host.indexOf('www.') == -1) { // kita cek www melalui index-nya
var url= href.replace(host, 'www.'+host); // jika tidak terdapat www kita tambahkan dahulu
window.location= url; }

Demikian tadi sedikit ulasan dari Admin mengenai "Beberapa cara redirect domain dari www atau tanpa www" yang dapat kita lakukan.

KOMENTAR

Sytrick

Sytrick 08 Jun 15

Saya masih belum paham gan, apa perbedaannya www dan non-www ,

f_huda19

Admin 09 Jun 15

maksudnya gini gan.. misalnya agan membuka blog ini dengan www didepan http://www.cyber4rt.wapsite.me maka akan ter-redirect ke http://cyber4rt.wapsite.me (tanpa www di depan) karena blog ini ane set tanpa www.

admin-Ilhame63

admin-Ilhame63 14 Mar 16

Au Ah Gelap, Kurang Ngerti :v

jenishow

jenishow 29 Mar 16

Karna saya bukan orang IT..,dan belajar buat website pun secara otodidak,. :D :D .tetapi berkat ilmu dan artikel2 yg ada blog ini alhamdulillah saya mulai mengetahuinya..
Thank's.

waloh

waloh 22 Nov 16

tolong dikasih textarea gan klo sintaxhigliteer gk bisa dicopas

f_huda19

Admin 22 Nov 16

pake browser yang support html5 gan

waloh

waloh 30 Nov 16

biar autodetect gmna tampilan mobile dan pc.utk xtgem kasih tau gan.

f_huda19

Admin 04 Dec 16

pake ini gan <xt:get-device-template /> (ganti "-" dgn underscore)

waloh

waloh 07 Dec 16

maksudnya biar kayak wap ini 2 tampilan yg web jd 3kolom

f_huda19

Admin 07 Dec 16

pake framework css (bootstrap atau materializecss)