可能的重复项:
在 LAMP 配置中创建虚 URL
用户注册后,我希望使用他们选择的用户名来生成任何人都可以(不仅仅是用户)查看的唯一个人资料页面。如果"鲍勃"注册,他将有一个个人资料 website.com/bob
我看过类似的问题,说要用.htaccess解决问题,但他们没有描述如何做到这一点。
您不需要在注册时生成唯一的个人资料页面。您可以简单地制作一个像profile.php
这样的脚本,该脚本采用参数user
,通过访问/profile.php?user=bob
来动态显示给定用户的配置文件。例:
<?php
$u = $_GET['user'];
echo "<h2>Profile of ".htmlentities($u)."</h2>";
?>
例如,当您想要使用以下方法重写 URL website.com/user/bob
以指向website.com/profile.php?user=bob
时,.htaccess 就会发挥作用。
RewriteEngine On
RewriteBase /
RewriteRule ^/user/([0-9a-zA-Z]*)$ /profile.php?user=$1 [NC,QSA,L]
Jimmy Sawczuck指出了一个答案,但在这里解释一下:
在这种情况下,您要实现的是使用 url 中的用户名访问个人资料页面。为每个用户创建php文件很麻烦,并且可能导致错误(维护性也很糟糕)
您可以创建配置文件.php脚本,该脚本使用名为 username
的参数。所以你的链接将是
mysite.com/profile.php?username=bob
但是,它不是您想要的网址。为了保存您存在网络服务器的重写模块(mod_rewrite对于apache,搜索其他网络服务器的相应实用程序)
这个模组允许你重写你的网址以匹配你想要的:
例如:网络浏览器中的 website.com/bob 被重写 website.com/profile.php?username=bob 为您的服务器。
这意味着您的用户可以拥有漂亮/微小的URL,但Web服务器会将其更改为调用所需的脚本。所以两个人都很开心。
要执行此重写,请使用具有重写规则的模块。如果您使用 apache,则使用mod_rewrite并将规则放在您的网站配置文件或所需目录中的 .htaccess 中。
有关规则,请检查Jimmy Sawczuck提供的链接
问候
如果您使用的是 PHP,则可以将用户信息存储在数据库中,并使用 fopen('bob.php'在目录中创建一个文件。然后让 bob .php调用显示用户信息所需的任何函数。
您可能需要随机化用户 URL,因为肯定会有重复项。
我不相信.htaccess可以做到这一点。