<IfModule mod_rewrite.c>
 RewriteEngine On

 # Disable directory listing
 Options -Indexes

 # Block direct access to PHP files inside /view/, except index.php (the router)
 <FilesMatch "^(?!index\.php$).+\.php$">
  Require all denied
 </FilesMatch>

 # Redirect direct .php requests at root → extensionless
 RewriteCond %{THE_REQUEST} \s/([^.]+)\.php[?\s] [NC]
 RewriteRule ^ %1 [R=301,L]

 # Let Apache serve existing files/folders normally
 RewriteCond %{REQUEST_FILENAME} -f
 RewriteRule . - [L]

 RewriteCond %{REQUEST_FILENAME} -d
 RewriteRule . - [L]

 # Catch-all: send everything else to router
 RewriteRule ^(.*)$ view/index.php?path=$1 [QSA,L]
</IfModule>