-1

可能重复:
在 LAMP 配置中创建虚 URL

一旦用户注册,我希望他们选择的用户名用于生成任何人(不仅仅是用户)都可以查看的唯一个人资料页面。如果“bob”注册,他将在 website.com/bob 拥有个人资料

我看过类似的问题,说用.htaccess解决问题,但他们没有描述如何做到这一点。

4

3 回答 3

1

您不需要在注册时生成唯一的个人资料页面。您可以简单地制作一个脚本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]
于 2012-04-22T16:25:48.607 回答
0

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 给出的链接

问候

于 2012-04-22T16:37:05.683 回答
-4

如果您使用 PHP,您可以将用户信息存储在数据库中,并使用 fopen('bob.php') 在您的目录中创建一个文件。然后让 bob.php 调用显示用户信息所需的任何函数。

您可能需要随机化用户 url,因为肯定会有重复。

我不相信 .htaccess 可以做到这一点。

于 2012-04-22T16:21:25.990 回答