.htaccess
.htaccess adalah file konfigurasi per-direktori yang dibaca Apache untuk meng override konfigurasi utama pada satu folder dan subfolder di bawahnya. File ini biasa ditaruh di document root untuk mengatur redirect, rewrite URL, kontrol akses, dan DirectoryIndex. Biayanya nyata: Apache membuka dan memproses file ini setiap request ke folder tersebut, jadi banyak file .htaccess di struktur folder yang dalam menambah kerja per request. Ia juga bekerja hanya jika server mengizinkannya, dan satu karakter keliru bisa menjatuhkan seluruh folder.
Aturan redirect dan rewrite
Pola yang paling sering dipakai adalah RewriteEngine On sebagai sakelar, RewriteCond sebagai syarat, dan RewriteRule sebagai tindakannya. Contoh paksa HTTPS yangcanonical:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Flag R=301 menandai pengalihan permanen seperti yang dibahas di Redirect 301 vs 302, sementara L menghentikan proses pada aturan itu. Untuk menyatukan versi www ke satu host demi Canonical URL, tambahkan satu RewriteCond pada HTTP_HOST lalu arahkan ke domain tujuan. DirectoryIndex menentukan file mana yang disajikan saat folder dibuka, umumnya index.php atau index.html.
Aturan blokir dan proteksi
Satu baris Require all denied menutup folder tertentu, dan Options -Indexes mencegah Apache menampilkan daftar isi folder. Aturan blokir IP atau pencegahan hotlinking juga ditulis di sini. Karena direktif ini langsung memengaruhi siapa yang boleh masuk, uji dulu di browser penyamaran agar cache tidak menyembunyikan hasil sebenarnya.
Bukan file Apache saja
LiteSpeed dapat membaca .htaccess kalau diizinkan, tapi Nginx tidak punya konsep file ini; aturannya harus dipindahkan ke server block. Saat pindah antar web server, aturan rewrite perlu diterjemahkan, bukan disalin. Kalau redirect tidak jalan meski sintaksnya benar, cek apakah AllowOverride di server utama mengizinkan override per folder; kalau AllowOverride None, Apache mengabaikan .htaccess sepenuhnya.
Satu karakter, satu 500
Baris yang tidak dikenal atau typo membuat Apache mengembalikan Error 500 untuk seluruh isi folder, sering tanpa petunjuk bagian mana yang salah. Halaman error biasanya cuma bilang Internal Server Error, jadi penyebabnya ada di error log, bukan di browser. Simpan salinan .htaccess.bak sebelum eksperimen, dan kalau situs berubah jadi 500 setelah edit, rename file itu dulu untuk memastikan sumber masalah sebelum membuka log. WordPress, plugin security, dan plugin cache juga bisa menulis ulang file ini, jadi catat perubahan manual Anda di tempat lain.
FAQ
Kenapa situs saya 500 setelah edit .htaccess?
Biasanya karena direktif tidak dikenal atau sintaks salah. Rename file menjadi .htaccess.bak untuk mengeceknya, lalu baca error log Apache untuk menemukan baris penyebabnya.
Apakah .htaccess berjalan di Nginx?
Tidak. Nginx tidak membaca .htaccess. Aturan redirect dan rewrite harus dipindahkan ke konfigurasi server block.
Boleh ada banyak .htaccess di subfolder?
Boleh, aturannya ditumpuk secara hierarkis. Semakin banyak file, semakin sulit melacak aturan mana yang menang, jadi taruh aturan di root kalau cukup.
File .htaccess berlaku di Apache. Di Nginx, aturan yang sama harus masuk config. Redirect, proteksi folder, dan PHP flag sering ditulis di sini. Generator cepat: htaccess generator. Salah rewrite bisa merusak permalink WordPress.
Disclaimer: Artikel WikiHosting disusun untuk tujuan edukasi dan referensi. Teknologi hosting terus berkembang, sehingga beberapa informasi teknis mungkin berubah seiring waktu.
