Parameter AllowOverride Apache: Fungsi, Nilai, dan Cara Konfigurasinya

Parameter AllowOverride dalam konfigurasi web server Apache berfungsi untuk menentukan direktif mana yang diizinkan untuk dimuat di dalam file .htaccess. Secara default, keamanan Apache mengatur nilai parameter ini ke None untuk direktori utama guna mengoptimalkan performa dan mencegah pengguna mengubah konfigurasi inti server.

Untuk menggunakan fitur kustomisasi tingkat direktori seperti modifikasi URL menggunakan RewriteEngine, pembatasan akses IP, atau pengaturan otentikasi kata sandi melalui file .htaccess, administrator server wajib mengubah nilai AllowOverride dari None menjadi direktif spesifik atau All.

Sintaks Dasar dan Penempatan

Direktif AllowOverride hanya dapat ditempatkan di dalam blok konfigurasi <Directory> di dalam file konfigurasi utama Apache (seperti httpd.conf atau apache2.conf) atau file virtual host.

<Directory "/var/www/html">
    AllowOverride AuthConfig FileInfo
    Require all granted
</Directory>

Daftar Nilai Parameter AllowOverride

Apache membagi fungsi pengaturan ke dalam beberapa kelompok kategori direktif. Tabel berikut merinci opsi nilai yang dapat diberikan pada parameter AllowOverride beserta fungsi dan cakupannya.

Nilai ParameterKategori Direktif yang Diizinkan dalam .htaccessContoh Penggunaan Umum
NoneTidak ada direktif yang diizinkan. File .htaccess diabaikan sepenuhnya.Standar keamanan maksimum untuk direktori root web.
AllSemua direktif yang memiliki konteks .htaccess diizinkan.Digunakan pada shared hosting atau direktori aplikasi CMS fleksibel.
AuthConfigMengizinkan direktif otentikasi (AuthType, AuthName, AuthUserFile, Require).Membuat proteksi password untuk direktori privat.
FileInfoMengizinkan direktif kontrol tipe dokumen, mod_rewrite, dan header (ErrorDocument, RewriteEngine).Pengaturan URL rewrite, custom error pages, dan MIME types.
IndexesMengizinkan direktif pengaturan indeks direktori (DirectoryIndex, Options +Indexes).Mengatur tampilan daftar file jika file index utama tidak ada.
LimitMengizinkan kontrol akses berdasarkan host (Allow, Deny, Order).Membatasi atau mengizinkan IP tertentu mengakses direktori.
OptionsMengizinkan pengaturan opsi direktori (Options, XBitHack).Mengaktifkan atau menonaktifkan eksekusi CGI atau FollowSymLinks.

Langkah Teknis Mengaktifkan AllowOverride untuk Virtual Host

Jika aplikasi web Anda memerlukan file .htaccess agar dapat berjalan normal (seperti WordPress, Laravel, atau Joomla), ikuti langkah-langkah konfigurasi berikut pada server Linux (Ubuntu/Debian):

  1. Buka file konfigurasi Virtual Host menggunakan teks editor seperti nano:
    sudo nano /etc/apache2/sites-available/000-default.conf
  2. Cari blok <Directory /var/www/html> atau direktori root proyek Anda.
  3. Ubah baris AllowOverride None menjadi AllowOverride All (atau batasi sesuai kebutuhan keamanan, misalnya AllowOverride FileInfo AuthConfig).
  4. Simpan file dengan menekan Ctrl+O, lalu keluar dengan Ctrl+X.
  5. Uji sintaks konfigurasi Apache untuk memastikan tidak ada kesalahan ketik:
    sudo apache2ctl configtest
  6. Muat ulang (reload) layanan Apache agar perubahan diterapkan:
    sudo systemctl reload apache2

Risiko Keamanan dan Praktik Terbaik

Mengaktifkan AllowOverride All secara global pada server produksi sangat tidak disarankan karena memberikan kebebasan penuh kepada pengguna (atau pihak yang berhasil menyusupkan file .htaccess berbahaya) untuk mengubah perilaku server, mengabaikan pembatasan keamanan, atau mengeksekusi modul yang tidak diinginkan.

Gunakan prinsip hak istimewa terendah (principle of least privilege). Jika aplikasi hanya memerlukan pengaturan URL rewriting, cukup berikan nilai AllowOverride FileInfo alih-alih membuka akses penuh menggunakan All. Selain itu, pastikan direktif AccessFileName diatur dengan benar dan file .htaccess dilindungi dari unduhan publik melalui aturan blokiran direktif <FilesMatch>.