【问题标题】:Custom URL for each user in PHPPHP中每个用户的自定义URL
【发布时间】:2009-10-15 00:37:59
【问题描述】:

是否有可能有一个网站,每个用户都有自己的 URL,例如: www.thewebsite.com/myusername

我希望每个用户网站都相同,名称重要的唯一原因是,如果访问该网站的人注册,他们会获得自己的自定义网址,但他们注册的人会被跟踪为他们的“家长”。

因此,如果我访问 www.thewebsite.com/phil 并以 David 的身份注册,那么我的网站将变为 www.thewebsite.com/david,但 Phil 会在我的用户记录中进行跟踪。 (即有没有办法让我知道他们在哪个网址下访问了该网站)

所以,真的是 2 个问题:

1) 如何为每个用户创建自定义 url 2) 我如何知道新用户访问了哪个网址

我对 PHP 还很陌生,所以请记住这一点。

【问题讨论】:

  • 我在下面给出了一个很好的答案,只是我意识到这可能不是我正在寻找的答案。我想要的是当有人在电子邮件中发送该链接时,我的网址是 www.domain.com/user,但是当涉及到我的网站时,没有 www.domain.com/user 目录。我的系统会将该目录识别为用户名并从那里继续。基本上,我希望任何有效用户都能够提供指向 www.domain.com/MYUSER 的链接,而我的站点上不存在该物理目录。这可能吗?

标签: php url url-rewriting


【解决方案1】:

您可以使用 apache mod_rewrite 来实现这一点。

为以下内容制定重写规则:

^/users/($1)    /users.php?userid=$1

在user.php文件中读取userid参数,返回给定用户对应的页面。

至于从哪个用户注册/登录到您的站点,您可以保留会话值,例如引用用户 ID,并且当新用户注册时,写入将他引至您的站点的数据库。

【讨论】:

  • 是否可以在不访问 mod_rewrite 的情况下执行此操作?就 mod_rewrite 的事情而言,我猜 URL 只是向用户显示为 /users/myuser 但仍向我的程序显示为 /users.php?userid=myuser 这是正确的吗?
  • "就 mod_rewrite 的事情而言,我猜 URL 只是向用户显示为 /users/myuser 但仍向我的程序显示为 /users.php?userid=myuser 是这对吗?”是的,没错。
猜你喜欢
  • 1970-01-01
  • 2017-07-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多