<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
# Disable directory listing
Options -Indexes
# Deep Link Support for Auth Page
# Ensure /student/auth/* maps to the auth page HTML, not the root index.html
RewriteCond %{REQUEST_URI} ^/student/auth/
RewriteRule ^student/auth/.*$ /student/auth.html [L]
# Handle Directory/File Conflict (e.g., /student/chats/ vs /student/chats.html)
# If request is a directory (or has trailing slash)
# AND a corresponding .html file exists, serve the .html file
RewriteCond %{REQUEST_FILENAME} -d
RewriteCond %{REQUEST_URI} ^(.+)/$
RewriteCond %{DOCUMENT_ROOT}%1.html -f
RewriteRule ^ %1.html [L]
# Serve resources from the out directory if they exist (extensionless to .html)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^(.*)$ $1.html [L]
# Clean URLs: redirect .html to extensionless
RewriteCond %{THE_REQUEST} \s/+(.+?)\.html\s [NC]
RewriteRule ^ /%1 [R=301,L]
# Force trailing slash removal for consistency?
# RewriteRule ^(.*)/$ /$1 [L,R=301]
# SPA Fallback: If no file/dir match, render index.html
# But be careful not to loop.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.html [L]
</IfModule>