Me-redirect domain non-www ke www di Nginx

Dapatkan update terbaru Linuxku.com di kanal Telegram https://telegram.me/linuxkudotcom.
 
Terkadang kita membutuhkan suatu domain non-www (domain.com) di-redirect ke domain ber-www (www.domain.com). Ada banyak tujuan menggunakan domain dengan www, diantaranya adalah mengenai pemanfaatan CDN, optimasi cookies jika kita menggunakan subdomain, dan lain sebagainya. Jika kita perhatikan beberapa situs besar menggunakan www di domainnya, seperti google, facebook, dan lain sebagainya. Penulis tidak membicarakan lebih detail mengenai manfaat dari penggunaan domain ber-www Anda bisa baca lebih lengkap di sini http://www.yes-www.org/why-use-www/


Salah satu cara me-redirect suatu domain dari server yakni dengan memanfaatkan htaccess. Seperti yang telah kita ketahui bahwa Nginx tidak bisa membaca htaccess kita perlu membuatkan konfigurasinya. Nah, tulisan kali ini, penulis membahas mengenai redirect di Nginx.

Langsung saja, pertama-tama buka pengaturan Nginx Anda.

Pengguna Ubuntu/Debian

$ sudo nano /etc/nginx/sites-available/default

Pengguna Centos/Fedora/RHEL

$ sudo nano /etc/nginx/nginx.conf

Kemudian buat skrip seperti berikut:

server {
    listen 80;
    server_name domainku.com;
    return 301 $scheme://www.domainku.com$request_uri;
}

server {
    listen 80;
    server_name www.domainku.com;
} 

Perhatikan skrip di atas, pengaturan Nginx layaknya seperti bahasa pemrograman C, yakni fungsi awal dibaca lebih dahulu, jadi kita letakan server_name domain tanpa www diletakan diawal yang kemudian di-redirect permanent (lihat return 301) ke www.

Skrip di atas di gunakan untuk satu domain saja atau per-virtualhost. Jika Anda ingin membuat seluruh domain di redirect ke www. Bisa buat seperti skrip di bawah ini:

server {
    server_name "~^(?!www.).*" ;
    return 301 $scheme://www.$host$request_uri;
}

Mudah bukan? Semoga bermanfaat 🙂

Yakin Ngga Mau Diskusi ?

Yuk diskusi cerdas. Gunakan nama asli agar komentar Anda disetujui.