Supponiamo che le tue altre pagine abbiano URL specifici che puoi confrontare, quanto segue dovrebbe aiutarti.
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z0-9-_]*)$ /profile.php?user=$1 [L]
Questo aiuta a mantenere gli URL correnti, consentendo al contempo gli URL di collegamento dell'utente. Inoltre, la RewriteRule
corrisponderà solo agli URL che non contengono un /
, che aiuterà a proteggere da reindirizzamenti non intenzionali. Allora,
/i-am-a-user -> MATCHES
/i_am_a_user -> MATCHES
/i-!am-a-user -> NOT MATCHED
/i.am.a.user -> NOT MATCHED
/i.am.a.user/ -> NOT MATCHED
/some/page/ -> NOT MATCHED
/doesnotexist.php -> NOT MATCHED
/doesnotexist.html -> NOT MATCHED
Spero di esserti stato d'aiuto.
MODIFICA
Ho aggiornato le regole sopra in modo che i file/directory effettivi non vengano reindirizzati e assicurandomi che qualsiasi .php
o .html
il file non viene inviato a profile.php
neanche.