Vous regardez cela dans la mauvaise direction. Vous ne pouvez pas faire ce genre de réécriture automatique d'url. Le mieux est de créer une réécriture complète de l'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>
et créez un nom spécifique pour un utilisateur dans la base de données qui sera utilisé comme URL.
+---------+----------+------+-----------+----------------+
| user_id | username | name | surname | url |
+---------+----------+------+-----------+----------------+
| 23 | liam | Liam | Gallagher | liam-gallagher |
+---------+----------+------+-----------+----------------+
Désormais, lorsque quelqu'un accède à votre http://mysite.com/directory/liam-gallagher
, vous pouvez lire la dernière entrée et trouver le user_id
dans votre base de données et laissez votre script faire le reste.
L'autre façon est comme Pekka
suggéré. Créez une URL comme http://mysite.com/directory/23/liam-gallagher
et lisez l'identifiant à partir du lien. Mais personnellement, je n'aime pas ce genre d'urls. Ce ne sont que des solutions de contournement rapides/paresseuses à mon avis.