# Pelindung akar aplikasi AkunWakaf.
#
# Berkas .php memang dijalankan PHP, jadi isinya tidak terbaca -- SELAMA PHP
# berjalan normal. Yang dijaga di sini justru keadaan ketika ia TIDAK normal:
# modul PHP mati, salah konfigurasi setelah pindah hosting, atau .php terlanjur
# dipetakan sebagai teks biasa. Dalam keadaan itu config/config.php akan
# menyerahkan kata sandi basis data kepada siapa pun yang mengetik alamatnya.
#
# Aturan di bawah menutup seluruh berkas yang memang tidak pernah perlu dibuka
# langsung dari peramban. Yang tetap terbuka hanya index.php dan folder aset.

<IfModule mod_rewrite.c>
  RewriteEngine On

  # Seluruh permintaan ke folder kode dan setelan ditolak.
  RewriteRule ^(config|src|migrasi|views|cron|storage|alat)/ - [F,L]
</IfModule>

# Berkas penyerta yang tidak perlu dilayani. README memuat catatan pengembangan
# lengkap -- nama tabel, alur wewenang, dan keputusan keamanan -- yang tidak ada
# gunanya bagi pengunjung dan memudahkan orang yang mencari celah.
<FilesMatch "\.(md|sql|json|lock|log|ini|bak|old|zip)$|^(VERSI|composer\.(json|lock))$">
  <IfModule mod_authz_core.c>
    Require all denied
  </IfModule>
  <IfModule !mod_authz_core.c>
    Order allow,deny
    Deny from all
  </IfModule>
</FilesMatch>

# Berkas tersembunyi (.htaccess, .git, .env) tidak pernah dilayani.
<FilesMatch "^\.">
  <IfModule mod_authz_core.c>
    Require all denied
  </IfModule>
  <IfModule !mod_authz_core.c>
    Order allow,deny
    Deny from all
  </IfModule>
</FilesMatch>

# Daftar isi folder dimatikan: tanpa ini, folder tanpa index.php menampilkan
# seluruh nama berkas di dalamnya.
Options -Indexes
