Options -Indexes RewriteEngine On # Set to /subdir if deployed in a subdirectory (e.g. RewriteBase /rosary) RewriteBase / # Let real files and directories pass through RewriteCond %{REQUEST_FILENAME} -f [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^ - [L] # Auth pages RewriteRule ^login$ login.php [L,QSA] RewriteRule ^logout$ logout.php [L,QSA] RewriteRule ^register$ register.php [L,QSA] RewriteRule ^confirm$ confirm.php [L,QSA] RewriteRule ^forgot-password$ forgot_password.php [L,QSA] RewriteRule ^reset-password$ reset_password.php [L,QSA] # Admin panel — let admin/ directory handle it RewriteRule ^admin/?$ admin/index.php [L,QSA] # Public user rosary: /username/slug → present.php RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/?$ present.php?username=$1&slug=$2 [L,QSA] # Public user profile: /username → profile.php RewriteRule ^([a-zA-Z0-9_-]+)/?$ profile.php?username=$1 [L,QSA]