Estás viendo esto desde la dirección equivocada. No puede hacer ese tipo de reescritura automática de URL. Lo mejor es crear una reescritura de URL completa:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
y cree un nombre específico para un usuario en la base de datos que se utilizará como URL.
+---------+----------+------+-----------+----------------+
| user_id | username | name | surname | url |
+---------+----------+------+-----------+----------------+
| 23 | liam | Liam | Gallagher | liam-gallagher |
+---------+----------+------+-----------+----------------+
Ahora, cuando alguien acceda a su http://mysite.com/directory/liam-gallagher
, puede leer la última entrada y encontrar el user_id
en su base de datos y haga que su script haga el resto.
La otra forma es como Pekka
sugirió. Cree una URL como http://mysite.com/directory/23/liam-gallagher
y lea la identificación del enlace. Pero personalmente no me gusta ese tipo de URL. En mi opinión, solo son soluciones rápidas/perezosas.