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