Pengalihan www ke non-www dalam Nginx

Untuk menjamin konsistensi dan mencegah Google menganggap adanya duplicate content pada situs anda maka sebaiknya kita menggunakan satu skema url untuk domainnya. Biasanya kita dilema antara menggunakan www atau non-www dalam format pengalamatan website, sejujurnya terserah anda pakai yang mana asal konsisten. Secara pribadi saya menggunakan non-www karena lebih singkat.

Karena itulah setiap akses ke format www.servernesia.com harus diredirect ke servernesia.com agar tidak ada dua jalur berbeda yang mengakses konten yang sama. Ini karena bisa dianggap website yang berbeda oleh Google kalau dibiarkan.

Sebelumnya wajib anda atur dalam DNS record bahwa A record dari bare domain (tanpa www) ke alamat IP server, juga versi www menggunakan A record ke alamat IP yang sama atau alternatifnya menggunakan CNAME ke A recordnya.

Yang perlu dilakukan adalah menambahkan kode berikut dalam blok server virtual host nama domain yang bersangkutan:

server {
        server_name www.nama_domain.com;
        return 301 $scheme://nama_domain.com$request_uri;
}

Gantikan nama_domain.com dengan domain yang anda hosting dalam Nginx.

Bagaimana kalau anda ingin menerapkan pengalihan www ke non-www secara global? Jadi seluruh website dalam Nginx akan diredirect ke versi non-wwwnya. Mudah kok, anda buat saja file konfigurasi baru:

nano etc/nginx/conf.d/pengalihan-www.conf

Dan isikan kode berikut didalamnya:

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

Tentu saja setelah anda edit konfigurasinya wajib direstart:

service nginx restart

Semua redirect menggunakan kode 301 agar Google tahu ini sifatnya permanen.

6 pemikiran pada “Pengalihan www ke non-www dalam Nginx

  1. Halo mas chandra,
    maaf kalau post di topik ini, mau request mas gimana cara pengaturan maintenance mode di nginx, jadi inginnya saat upgrade forum dll pengunjung di alihkan ke halaman maintenance mode.
    memang sudah ada sih opsi maitenance mode di xenforo (board active) tapi pinginnya pengunjung tidak melihat sama sekali tampilan forum dan hanya terlihat halaman maintenance yang kalau nggak salah serba putih semua dengan tulisan maintenance mode.
    terima kasih sebelumnya mas 🙂

    • Saya antara paham ga paham ini mbak. Haha. 😀 Kalau pakai konfigurasi Nginx ini gimana:

      location / {
          try_files /maintenance.html $uri $uri/ =503;
      }

      Nanti akan mengembalikan halaman maintenance.html dan kode 503 (Service unavailable). Tapi efeknya ya kita sendiri ga bisa akses, mungkin bisa digabung dengan filter alamat IP adminnya biar tidak ikut terblokir.

    • Kayanya sih bisa mbak pakai kode diatas. Tapi itu maintenancenya idws mungkin manual ya, backup database dan ngetar file – filenya. Kalau sudah selesai dihilangkan blok kodenya dan restart Nginx. Teori saja sih.

Tinggalkan komentar