Cara Konfigurasi Redirect 301 Nginx Permanen (Permanently Moved)

Redirect 301 Nginx adalah instruksi status HTTP permanen yang menginformasikan kepada mesin pencari dan browser bahwa suatu halaman atau domain telah berpindah alamat secara permanen. Penerapan yang tepat mengalirkan nilai SEO (link juice) hingga 90-99% ke URL tujuan baru.

Untuk menerapkan pengalihan ini pada web server Nginx, Anda harus memodifikasi file konfigurasi blok server (biasanya terletak di /etc/nginx/sites-available/ atau /etc/nginx/nginx.conf) menggunakan direktif return 301 atau modul rewrite.

Sintaks Dasar Nginx Redirect 301

Penerapan paling efisien di Nginx adalah menggunakan direktif return di dalam blok server karena lebih cepat dan tidak memerlukan pemrosesan ekspresi reguler (regex) yang membebani CPU.

server {
    listen 80;
    server_name lama.com www.lama.com;
    return 301 https://baru.com$request_uri;
}

Tabel Skenario Penggunaan Redirect 301 Nginx

Skenario Kebutuhan Sintaks Konfigurasi Nginx Keterangan Teknis
HTTP ke HTTPS (Satu Domain) return 301 https://$host$request_uri; Mengarahkan seluruh traffic port 80 ke protokol SSL port 443.
Migrasi Domain Penuh return 301 https://domainbaru.com$request_uri; Memindahkan seluruh jalur URI dari domain lama ke domain baru.
Pengalihan Halaman Tunggal rewrite ^/tentang-lama$ /tentang-baru permanent; Mengubah satu path spesifik menuju path baru pada domain yang sama.
Non-WWW ke WWW return 301 https://www.domain.com$request_uri; Menyeragamkan indeks mesin pencari ke subdomain www.

Langkah-Langkah Implementasi di Server

  1. Akses server via SSH menggunakan hak akses root atau sudo.
  2. Buka file konfigurasi Nginx domain Anda menggunakan editor teks nano atau vim:
    sudo nano /etc/nginx/sites-available/nama_domain.conf
  3. Tambahkan blok server baru khusus untuk menangani pengalihan 301 sesuai kebutuhan skenario di atas.
  4. Simpan file dan lakukan uji validitas sintaks konfigurasi Nginx untuk menghindari error fatal:
    sudo nginx -t
  5. Jika hasil pengujian menunjukkan syntax is ok dan test is successful, muat ulang service Nginx:
    sudo systemctl reload nginx

Troubleshooting dan Validasi Lapangan

Setelah konfigurasi diterapkan, pastikan status HTTP benar-benar mengembalikan kode 301. Anda dapat menggunakan perintah curl melalui terminal untuk memeriksa header respons:

curl -I http://lama.com/halaman

Pastikan baris pertama pada respons terminal menampilkan HTTP/1.1 301 Moved Permanently diikuti dengan header Location: https://.... Jika muncul kode 302, berarti konfigurasi Anda masih bersifat sementara dan perlu dibersihkan dari cache browser maupun cache Nginx.