Apache: Cara Menampilkan Daftar Direktori
Untuk menampilkan daftar file dan subdirektori di sebuah direktori pada Server HTTP Apache, atur Options +Indexes di direktori tersebut. Daftar ini dibuat ketika izin akses diberikan, tidak ada file indeks default, dan mod_autoindex diaktifkan.
Kondisi di mana daftar ditampilkan
Ketika URL direktori diminta di Apache 2.4, pertama-tama ia mencari file yang ditentukan di DirectoryIndex. Misalnya, jika index.html ada, file itu biasanya akan ditampilkan. Jika file tersebut tidak ada dan Indexes diaktifkan, mod_autoindex dapat membuat daftar. Untuk perilaku lebih rinci, lihat deskripsi DirectoryIndex Apache dan dokumentasi mod_autoindex .
Pengaturan daftar tidak memberikan izin akses. Direktori yang aksesnya ditolak atau jalur yang tidak dapat dibaca oleh Apache tidak akan menampilkan daftar. Juga, 403 Forbidden dapat terjadi karena berbagai alasan, seperti autentikasi atau izin sistem file, jadi Anda tidak boleh mengaktifkan daftar hanya karena muncul 403.
Periksa sebelum mengatur
- Siapkan direktori khusus di mana daftar dan file dapat dipublikasikan. Jangan menaruh materi yang seharusnya tidak dipublikasikan, seperti file konfigurasi, cadangan, atau informasi pribadi.
- Konfirmasikan virtual host dari situs yang akan dikonfigurasi dan jalur file yang sebenarnya. Contoh di bawah ini adalah untuk Ubuntu Apache 2.4 ketika root dokumen situs adalah
/var/www/htmldan direktori publik berada didownloadsdi bawahnya. Ganti dengan jalur lingkungan dan URL yang sebenarnya. - Cadangkan pengaturan yang ada dan pastikan Anda memiliki izin untuk mengelola situs dan memuat ulang Apache. Jika itu adalah server produksi, periksa terlebih dahulu di lingkungan pengujian.
Bahkan jika file tidak muncul dalam daftar, file tersebut mungkin dapat diakses jika Anda mengetahui URL file secara langsung. Menyembunyikan nama dalam daftar bukanlah pengganti izin yang memblokir akses file.
Terapkan ke direktori tertentu di host virtual
Di Ubuntu, konfigurasi situs yang aktif biasanya ada dalam sebuah file di bawah /etc/apache2/sites-available/. Tambahkan blok berikut ke konfigurasi host virtual situs atau ubah konfigurasi jalur yang sudah ada. Jangan sembarangan menambahkan izin publik ke direktori yang sudah memiliki batasan akses.
<Directory "/var/www/html/downloads">
Options +Indexes
Require all granted
</Directory>
Options +Indexes menambahkan daftar direktori ke opsi yang diwarisi. Require all granted memungkinkan akses ke path ini, jadi gunakan hanya di direktori yang dimaksudkan untuk publik. Lingkup penerapan yang sebenarnya dapat bervariasi tergantung pada bagian konfigurasi lain atau pengaturan subdirektori. Anda dapat memeriksa aturan pewarisan dan penggabungan opsi di direktif Apache Options.
Setelah menyimpan konfigurasi, periksa sintaks di Ubuntu. Jika Syntax OK ditampilkan, muat ulang konfigurasi. Jika terjadi kesalahan, perbaiki path dan kesalahan ketik, dan jangan muat ulang sampai pemeriksaan berhasil.
sudo apache2ctl configtest
sudo systemctl reload apache2
Distribusi selain Ubuntu mungkin memiliki lokasi file konfigurasi dan nama layanan yang berbeda. Selain itu, ikuti panduan distribusi tersebut untuk perintah pemeriksaan sintaks dan muat ulang.
Memeriksa daftar direktori dan cakupan akses
- Tempatkan file uji yang dapat diakses secara publik di direktori target dan pastikan file indeks yang ditentukan tidak ada di sana.
- Buka URL direktori di browser Anda. Dalam contoh di atas, jika alamat server adalah
https://example.com,https://example.com/downloads/akan menjadi URL contoh. Ganti dengan domain yang sebenarnya. - Periksa apakah file uji ditampilkan dalam daftar dan buka tautannya untuk memastikan cakupan akses sesuai dengan pengaturan yang dimaksud. Karena pengaturan dapat diwariskan oleh subdirektori, tinjau juga cakupan akses publik.
Jika sebuah halaman muncul alih-alih daftar, periksa apakah ada file DirectoryIndex atau penangan/pemindah arah lainnya. Jika terjadi error 403, periksa batasan akses, izin direktori, dan pengaturan indeks di log kesalahan. Anda juga dapat memeriksa apakah modul autoindex aktif menggunakan apache2ctl -M. Jika jalurnya salah, error 404 mungkin terjadi.
Saat menggunakan .htaccess
Jika administrator server telah mengizinkan perubahan Options di .htaccess untuk direktori tersebut, Anda juga dapat menambahkan baris berikut ke file tersebut. Jika AllowOverride dari pengaturan induk tidak mengizinkan opsi ini, hal itu mungkin tidak berhasil atau dapat menyebabkan error server, jadi konfirmasikan dengan administrator.
Options +Indexes
Jika Anda memiliki akses ke pengaturan server, Apache umumnya menyarankan untuk menggunakan file konfigurasi utama. Periksa kondisi yang berlaku dalam panduan .htaccess Apache.
Untuk menghentikan tampilan daftar
Atur Options -Indexes pada jalur yang diberikan atau kembalikan pengaturan seperti sebelum perubahan Anda, kemudian periksa sintaks dan muat ulang Apache. Jika Anda menambahkannya ke .htaccess, hapus baris tersebut atau, jika diizinkan, ubah menjadi Options -Indexes. Karena pengaturan yang diwariskan mungkin ada, periksa URL direktori lagi setelah melakukan perubahan.
Mematikan daftar saja tidak memblokir akses ke URL file yang sudah diketahui. Untuk melindungi file itu sendiri, terapkan kontrol akses terpisah dan verifikasi bahwa pengguna yang tidak berwenang benar-benar diblokir.




