# HotelFix v2 — rewrite pretty path API (§9, kontrak Android)
#
# Aturan:
#  1. /api/v1/<apapun-yang-bukan-file-atau-direktori-nyata> -> /api/v1/index.php
#     (front controller mem-parse path & memetakan ke controller, lihat
#     public/api/v1/index.php). File lama public/api/v1/*.php (auth.php,
#     wo.php, dst.) TETAP bisa diakses langsung -- baris RewriteCond di
#     bawah membiarkan file yang benar-benar ada lolos tanpa rewrite.
#  2. Halaman web non-API (public/*.php, aset statis) TIDAK disentuh oleh
#     aturan ini sama sekali.

# Apache tidak meneruskan header Authorization (Bearer) ke PHP secara
# default — tanpa baris ini semua request API ber-token akan 401.
<IfModule mod_setenvif.c>
    SetEnvIf Authorization "(.+)" HTTP_AUTHORIZATION=$1
</IfModule>

<IfModule mod_rewrite.c>
    RewriteEngine On

    # Hanya berlaku di bawah /api/v1/
    RewriteBase /

    # Bila path menunjuk file atau direktori yang benar-benar ada
    # (mis. /api/v1/auth.php, /api/v1/index.php, atau folder statis),
    # jangan di-rewrite -- layani apa adanya.
    RewriteCond %{REQUEST_FILENAME} -f [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^ - [L]

    # Semua permintaan lain di bawah api/v1/ -> front controller.
    RewriteRule ^api/v1/.*$ api/v1/index.php [L,QSA]
</IfModule>

# Jangan sajikan file konfigurasi/storage bila tak sengaja ada di public/.
<FilesMatch "\.(sql|env)$">
    Require all denied
</FilesMatch>
