给定一个原始 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
这允许任何内容都位于 url 的 ID 部分后面,而不会干扰 ID 本身。
然后,您可以使用 mysql 查询来选择正确的用户,即使只有他们 id 的前十个字符:
SELECT * FROM users WHERE LEFT(user_id,10)='" . mysql_real_escape_string($_GET['profile_id']) . "' LIMIT 0, 1;
我在我的一个站点上使用此方法,该站点的条目超过三到四千,并且仅使用八个字符(而不是我在这里使用的十个字符)还没有发生任何冲突,并且还没有看到任何类型的冲突。