Предположим, что на других ваших страницах были определенные URL-адреса, с которыми можно было бы проверить, следующее должно помочь:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z0-9-_]*)$ /profile.php?user=$1 [L]
Это помогает поддерживать текущие URL-адреса, в то же время позволяя использовать ярлыки URL-адресов пользователя.Кроме того, RewriteRule
будет соответствовать только тем URL-адресам, которые не содержат /
, что поможет защитить от непреднамеренных перенаправлений.Итак,
/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
Надеюсь, это поможет.
РЕДАКТИРОВАТЬ
Я обновил приведенные выше правила, так что фактические файлы / каталоги неперенаправить, а также убедиться, что любой файл .php
или .html
также не отправлен на profile.php
.