# Options
Options -Indexes

# MIME Types for videos and modern images
<IfModule mod_mime.c>
    AddType video/mp4 .mp4
    AddType video/webm .webm
    AddType video/ogg .ogg
    AddType image/webp .webp
    AddType image/svg+xml .svg
</IfModule>

# Ensure public access to media and assets
<FilesMatch "\.(jpg|jpeg|png|gif|webp|svg|mp4|webm|ogg|css|js|woff|woff2|ttf)$">
    <IfModule mod_authz_core.c>
        Require all granted
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order allow,deny
        Allow from all
    </IfModule>
</FilesMatch>

# URL Rewriting (Clean URLs without .php)
<IfModule mod_rewrite.c>
    RewriteEngine On

    # Prevent rewrite loops on internal subrequests
    RewriteCond %{ENV:REDIRECT_STATUS} 200
    RewriteRule ^ - [L]

    # 1. Remove trailing slash from non-directories (e.g. /destinasi/ -> /destinasi)
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s(.*)/+[?\s] [NC]
    RewriteRule ^(.+)/$ %1 [R=301,L]

    # 2. Redirect /index.php to / (root or subfolder)
    RewriteCond %{REQUEST_METHOD} !POST
    RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s(.*)/index\.php[?\s] [NC]
    RewriteRule ^index\.php$ %1/ [R=301,L]

    # 3. Redirect /filename.php to /filename (exclude admin folder and POST requests)
    RewriteCond %{REQUEST_METHOD} !POST
    RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s(.*)/([^.]+)\.php[?\s] [NC]
    RewriteCond %{REQUEST_URI} !/admin/ [NC]
    RewriteRule ^(.*)\.php$ %1/%2 [R=301,L]

    # 4. Internally rewrite extensionless URL to .php file if it exists
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME}\.php -f
    RewriteRule ^(.*)$ $1.php [L,QSA]
</IfModule>

