Pada postingan ini kita akan membahas index pada apache2. Saat kita menjalankan apache web server maka akan di tampilkan halaman defaultnya adalah index.html
. Kadang kita tidak ingin struktur direktori aplikasi web kita dibaca oleh orang tak berwenang, tentunya dengan alasan keamanan. Untuk itu kita perlu disable indexes pada web server dalam hal ini apache2. Berikut adalah cara untuk disable indexes.
- htaccess Untuk Web Server
Kita perlu memodifikasi virtualhost, by default lokasinya ada pada /etc/apache2/sites-enabled/000-default.conf
.
nano /etc/apache2/sites-enabled/000-default.conf
Lalu tambahkan seperti ini
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
+ <Directory /var/www/html>
+ AllowOverride All
+ </Directory>
</VirtualHost>
Jika sdah simpan konfigurasi dengan menekan ctrl+o
dan enter
.
Berikutnya kita membuat file .htacccess
di dalam dokumen root directory dari web server kita, by default biasanya diletakan pada /var/www/html/
, lalu tambahkan syntax berikut
<IfModule mod_autoindex.c>
Options -Indexes
</IfModule>
Jika sudah selesai kit aperlu restart service apache nya
systemctl restart apache2
- htaccess Untuk Userdir
Kadang kita ingin mengaktifkan modul userdir
, dalam kasus saya biasanya digunakan untuk access file multimedia seperti gambar atau video dari ftp agar dapat di akses dari web browser. Memang banyak cara untuk melakukan hal tersebut, tpi biasanya saya menggunakan userdir untuk konfigurasinya.
Sebelumnya saya sudah pernah bahas bagaimana cara konfigurasu userdir.
Kita bahas bagaimana cara untuk konfigurasi .htaccess
untuk disable indexes pada userdir
apache2. Disini saya asumsikan untuk dokumen rootnya di taruh apda /home/ftpuser/ftp/
.
Maka untuk file .htaccess diletakan di dalam direkrotori tersebut.
#nano /home/ftpuser/ftp/.htaccess
Lalu isikan dengan syntax berikut
<IfModule mod_autoindex.c>
Options -Indexes
</IfModule>
Jika sudah, simpan dengan menekan tombol ctrl+o
dan enter
. Lakukan modifikasi pada file konfigurasi untuk mengaktifkannya
nano /etc/apache2/sites-enabled/000-default.conf
Lakukan modifikasi pada bagian AllowOverride
, saya beri tanda hijau untuk menambah syntak pada baris tersebut dan merah untuk menghapus syntax pada barisnya, atau kita bisa beri komentar saja.
<IfModule mod_userdir.c>
UserDir public_html
UserDir disabled root
<Directory /home/*/public_html>
- AllowOverride FileInfo AuthConfig Limit Indexes
+ AllowOverride All
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
Require method GET POST OPTIONS
</Directory>
</IfModule>
Restart service pada apache2 dengan cara berikut
systemctl restart apache2
Jika semua sudah dilakukan uji coba dengan menghapus file index.html
. Seharusnya tidak akan di tampilkan list direktorinya.
Lalu pastikan bahwa filenya bisa dibuka, dalam contoh saya buka file info.php
. Karena tidak tampil index direktorinya jadi untuk memanggilnya bisa langsung melalui url, seperti contoh berikut.
Jika semua konfigurasi sesuai, maka akan file tetap bisa di eksekusi sperti biasa.
Selamat mencoba, semoga bermanfaat.