Generator Redireksi Htaccess

Setiap kali Anda memigrasikan blog, mengubah skema URL, atau mengonsolidasi halaman lama, file .htaccess di Apache menjadi komponen utama yang harus diperbaiki. Generator ini mengubah pemetaan sumber ke tujuan yang sederhana menjadi direktif RewriteRule dengan flag yang tepat, sehingga siap digunakan langsung dalam file .htaccess situs web.

Cara membuat aturan redireksi

  1. 1

    Pilih jenis redireksi

    301 permanen untuk perpindahan yang aman bagi SEO; 302 sementara untuk uji coba A/B dan pengalihan musiman.

  2. 2

    Masukkan sumber dan tujuan

    Jalur tepat atau pola regex: jalur lama menjadi pola RewriteRule, dan URL baru menjadi target redireksi.

  3. 3

    Periksa flag

    Setiap aturan otomatis menerima flag yang benar, `[R=301,L]` atau `[R=302,L]`, sehingga bloknya langsung berfungsi dengan mod_rewrite.

  4. 4

    Salin direktif

    Blok yang dihasilkan dimasukkan ke dalam bagian `<IfModule mod_rewrite.c>` dari file .htaccess.

Direktif mod_rewrite versus mod_alias

Apache menyediakan dua modul untuk pengalihan (redirect). Pemilihan modulnya ditentukan berdasarkan tingkat kompleksitas aturan tersebut.

Panduan Keputusan

Persyaratan Gunakan Contoh
URL lama yang persis → URL baru yang persis Redirect Redirect 301 /old /new
Prefiks wildcard RedirectMatch RedirectMatch 301 ^/blog/(.*)$ /articles/$1
Kesesuaian string kueri RewriteRule Lihat di bawah
Wajibkan HTTPS RewriteRule RewriteCond %{HTTPS} off + aturan
Kondisional (browser, cookie) RewriteRule Dengan RewriteCond

Contoh: paksa HTTPS dengan www

RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Contoh: pindahkan /blog/post-123 ke /articles/post-123

RewriteEngine On
RewriteRule ^blog/(.*)$ /articles/$1 [L,R=301]

Bendera yang akan Anda lihat

  • L, terakhir; jangan lanjutkan pemrosesan aturan lainnya.
  • R=301 atau R=302, arahkan ulang menggunakan kode status tersebut.
  • NC, tidak membedakan huruf kapital dan kecil.
  • QSA, tambahkan string kueri asli ke URL baru.
  • NE, jangan mengkode ulang karakter khusus dalam teks tujuan.

Kesalahan Umum

  • Melupakan RewriteEngine On, tanpa elemen ini, RewriteRule tidak akan memiliki efek apa pun.
  • Menggunakan 302 secara default, Google menganggapnya sebagai status sementara, sehingga URL lama tetap mempertahankan peringkatnya.
  • Redireksi berantai (lama → perantara → akhir), selalu upayakan hanya satu lompatan; setiap lompatan tambahan mengurangi nilai tautan (link equity) dan menambah latensi.

Pertanyaan yang Sering Diajukan

Gunakan 301 untuk perpindahan permanen, seperti migrasi situs, perubahan URL slug, atau peningkatan ke HTTPS. Gunakan 302 hanya untuk situasi sementara, seperti mengarahkan pengunjung ke halaman pemeliharaan atau melakukan pembagian pengguna (A/B testing). Mesin pencari mentransfer sinyal peringkat melalui 301, tetapi tidak secara andal melalui 302.

Penyebab paling umum adalah melupakan tanda slash awal dalam pola. Dalam RewriteRule, pola tersebut cocok dengan jalur tanpa tanda slash awal (misalnya ^blog/); sedangkan dalam Redirect (mod_alias), pola memang dimulai dengan tanda slash (misalnya /blog). Jangan mencampur kedua konvensi ini.

Ya, gunakan RewriteCond %{QUERY_STRING} ^id=123$ sebelum RewriteRule. Redirect biasa tidak membaca string kueri; hanya RewriteRule yang dapat mencocokkannya.

Ya, pada permintaan berikutnya, Apache akan membaca kembali file .htaccess untuk setiap permintaan; tidak diperlukan restart server. Jika tidak ada perubahan yang terjadi, pastikan bahwa AllowOverride All telah diatur dalam vhost untuk direktori tersebut.

Alat Terkait

Alat ini tersedia dalam bahasa lain