嗨,im使用htaccess将profile.php?u=<username>更改为我的网站/用户名,当我在链接中使用它时,它工作得很好,但当有人编写profile.php?id=<uid>时,它会自动改变。
例如,在facebook中,当您编写"www.facebook.com/profile.php?id=4“时,它将改为"www.facebook.com/zuck”。
我的htaccess代码
RewriteEngine On RewriteRule ^([a-zA-Z0-9_-]+)$ profile.php?u=$1 RewriteRule ^([a-zA-Z0-9_-]+)/$ profile.php?u=$1
我还能补充什么呢?请帮帮忙。
发布于 2015-01-10 10:20:40
没有,因为您肯定没有Apache可用的列表,其中包含用户ID到它们各自用户名的映射。Facebook使用他们的PHP应用程序执行重定向,方法是查询他们的数据库以获得ID,并将您重定向到包含用户名称的相应新URL,该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();
}https://stackoverflow.com/questions/27874945
复制相似问题