用户 ID 使用 htaccess 自动更改为用户名?

user id change automatically to username using htaccess?

你好我正在使用 htaccess 将 profile.php?u=<username> 更改为 mywebsite/username 当我在我的链接中使用它时它工作得很好但我希望它在有人写 profile.php?id=<uid>[=13 时自动更改=]

例如在 facebook 中当你写 "www.facebook.com/profile.php?id=4" 它会变成 "www.facebook.com/zuck"

我的 htaccess 代码

RewriteEngine On RewriteRule ^([a-zA-Z0-9_-]+)$ profile.php?u= RewriteRule ^([a-zA-Z0-9_-]+)/$ profile.php?u=

我可以添加什么?请帮助。

没有,因为您肯定没有 Apache 可用的列表,其中包含您的用户 ID 到其各自用户名的映射。 Facebook 通过他们的 PHP 应用程序执行重定向,方法是在他们的数据库中查询 ID 并将您重定向到相应的新 URL,其中包含从他们的数据库中检索到的用户名。这样的 PHP 脚本可能如下所示:

<?php

$options = array("options" => array("min_range" => 1));
if (($id = filter_input(INPUT_GET, "id", FILTER_VALIDATE_INT, $options)) {
    $user = new User($id);
    header("Location http://example.com/{$user->name}", true, 303);
    exit();
}