Patrzysz na to ze złego kierunku. Nie możesz zrobić tego rodzaju automatycznego przepisywania adresów URL. Najlepiej jest przepisać cały adres URL:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
i utwórz konkretną nazwę dla użytkownika w bazie danych, która będzie używana jako adres URL.
+---------+----------+------+-----------+----------------+
| user_id | username | name | surname | url |
+---------+----------+------+-----------+----------------+
| 23 | liam | Liam | Gallagher | liam-gallagher |
+---------+----------+------+-----------+----------------+
Teraz, gdy ktoś uzyskuje dostęp do Twojego http://mysite.com/directory/liam-gallagher
, możesz przeczytać ostatni wpis i znaleźć user_id
w Twojej bazie danych i spraw, aby Twój skrypt wykonał resztę.
Innym sposobem jest Pekka
zasugerował. Utwórz adres URL, taki jak http://mysite.com/directory/23/liam-gallagher
i odczytaj id z linku. Ale ja osobiście nie lubię tego rodzaju adresów URL. Moim zdaniem są to po prostu szybkie/leniwe obejścia.