Załóżmy, że inne strony miały określone adresy URL, które można sprawdzić, poniższe powinny pomóc.
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z0-9-_]*)$ /profile.php?user=$1 [L]
Pomaga to w utrzymaniu aktualnych adresów URL, umożliwiając jednocześnie adresy URL skrótów użytkownika. Ponadto RewriteRule
dopasuje tylko adresy URL, które nie zawierają /
, co pomoże chronić przed niezamierzonymi przekierowaniami. Tak więc,
/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
Mam nadzieję, że to pomoże.
EDYTUJ
Zaktualizowałem powyższe reguły, aby rzeczywiste pliki/katalogi nie były przekierowywane, a także upewniłem się, że każdy .php
lub .html
plik nie jest wysyłany do profile.php
albo.