Díváte se na to ze špatného směru. Takový automatický přepis adresy URL nemůžete udělat. Nejlepší je vytvořit celoplošný přepis adresy 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>
a vytvořte konkrétní jméno pro uživatele v db, které bude použito jako url.
+---------+----------+------+-----------+----------------+
| user_id | username | name | surname | url |
+---------+----------+------+-----------+----------------+
| 23 | liam | Liam | Gallagher | liam-gallagher |
+---------+----------+------+-----------+----------------+
Nyní, když někdo přistoupí na váš http://mysite.com/directory/liam-gallagher
, můžete si přečíst poslední položku a najít user_id
ve vaší databázi a nechte váš skript udělat zbytek.
Druhým způsobem je Pekka
navrhl. Vytvořte adresu URL jako http://mysite.com/directory/23/liam-gallagher
a přečtěte si ID z odkazu. Osobně se mi ale takové adresy URL nelíbí. Podle mého názoru jsou to jen rychlá/líná řešení.