Apache RewriteCond Flags: Panduan Lengkap dan Fungsi Parameter

Memahami Apache RewriteCond Flags

Dalam konfigurasi Apache mod_rewrite, RewriteCond digunakan untuk menetapkan kondisi yang harus dipenuhi sebelum aturan RewriteRule dijalankan. Flag (bendera) pada RewriteCond berfungsi sebagai pengubah perilaku (modifier) yang menentukan bagaimana string perbandingan diproses oleh server.

Sintaks dasar penggunaan flag adalah: RewriteCond TestString CondPattern [flags]. Tanpa flag, Apache akan melakukan perbandingan string standar. Penggunaan flag yang tepat sangat krusial untuk efisiensi performa server dan akurasi logika pengalihan URL.

Daftar Flag RewriteCond

Berikut adalah tabel referensi flag yang tersedia untuk direktif RewriteCond:

FlagNamaFungsi
NCNocaseMembuat perbandingan tidak peka huruf besar/kecil (case-insensitive).
OROrnextMengubah logika dari AND menjadi OR untuk kondisi berikutnya.
NVNoVersionMengabaikan pengecekan versi modul (jarang digunakan).

Implementasi Teknis

Berikut adalah contoh penerapan RewriteCond dengan flag [NC] untuk memastikan pengalihan tetap berjalan meskipun pengguna mengetikkan huruf besar atau kecil pada URL.

RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]

Penjelasan Langkah Teknis:

  1. RewriteEngine On: Mengaktifkan mesin penulisan ulang URL.
  2. RewriteCond %{HTTP_HOST} ^example\.com$ [NC]: Memeriksa apakah domain yang diakses adalah example.com. Flag [NC] memastikan bahwa 'Example.com' atau 'EXAMPLE.COM' tetap terbaca sebagai kondisi yang benar.
  3. RewriteRule: Melakukan redirect permanen (301) ke versi www.

Tips Troubleshooting

  • Gunakan [NC] dengan Bijak: Jangan gunakan flag ini jika Anda memerlukan sensitivitas huruf besar/kecil untuk keamanan atau pembedaan direktori.
  • Log Debugging: Jika aturan tidak berjalan, aktifkan RewriteLog (pada Apache 2.2) atau gunakan LogLevel alert rewrite:trace8 (pada Apache 2.4) untuk melihat bagaimana flag memproses kondisi Anda.
  • Urutan Kondisi: Ingat bahwa secara default, beberapa RewriteCond digabungkan dengan logika AND. Gunakan flag [OR] jika Anda ingin logika alternatif.