次のような元の URL が与えられた場合:
http://website.com/view/b2c32b2c782f65be2c299f7b38189a120fd51c89/
代わりに、次のようなものにリンクできます。
http://website.com/view/b2c32b2c78/your-username/
そして、次のような RewriteRule を使用します。
RewriteRule ^view/([a-f0-9]{10})/(.*)$ ./view/index.php?profile_id=$1
これにより、ID 自体に干渉することなく、URL の ID 部分の背後に何かを置くことができます。
次に、id の最初の 10 文字だけでも、mysql クエリを使用して適切なユーザーを選択できます。
SELECT * FROM users WHERE LEFT(user_id,10)='" . mysql_real_escape_string($_GET['profile_id']) . "' LIMIT 0, 1;
私はこの方法を、3000 から 4000 を超えるエントリを持つサイトの 1 つで使用していますが、ここで使用した 10 文字の代わりに8文字を使用しただけでまだ衝突が発生しておらず、衝突の種類もまだ見たことがありません。