【问题标题】:How do I properly implement mysite.com/username without interfering with my pages?如何在不干扰我的页面的情况下正确实施 mysite.com/username?
【发布时间】:2012-06-12 03:03:53
【问题描述】:

这一直让我感到困惑,我理解“漂亮 URL”的概念,但无法理解如何在不妨碍网站布局的情况下实现这一点。

我知道我不能允许人们使用“messages”之类的用户名,这样它就不会干扰 /messages 页面,但是我不知道以后会添加到我的网站中的页面类型。 .. 例如,如果我想拥有 mysite.com/hub/(我不是 hub.mysite.com 的粉丝)并且有人注册了名称“hub”,我该怎么办?在这一点上我只是搞砸了,需要重命名它还是强制用户更改他们的名字?如果有人能就我应该如何正确处理这件事给我建议,我将不胜感激。

【问题讨论】:

  • 通常,如果您的站点在根级别具有结构,则您不会在根级别为用户提供 URL。而是使用/users/username 否则,您需要在 Web 服务器级别(不是 PHP)重写规则,以解决所有其他非用户名情况。一些应用程序框架会处理这个问题 - 众所周知的控制器会相应地进行路由,然后默认路由其他所有内容以搜索用户名,如果没有找到用户,则最后是 404。
  • @Michael 嘿,我在输入答案时没有看到您的评论,但您说的基本相同。如果您决定自己回答,我会删除我的回答,因为您是第一个。
  • 很多网站为用户提供第一个路径段,但将他们的部分移动到子域中。

标签: php mysql url


【解决方案1】:

我也认为这种方法存在问题。代替 mysite.com/some-user,mysite.com/users/some-user 怎么样?这样他们就不会干扰您网站的其他部分。

【讨论】:

  • 或者将所有应用程序 URL 命名为 /app/...,并且不要让任何人将其用作用户名。
  • @muistooshort 这也可以。但如果 OP 担心干扰,那么我猜他的网站结构不是这样。
  • 该网站没有上线,所以做一些重组没什么大不了的,但我真的想避免 /user/
  • 同意。如果您希望将来向您的站点添加更多 URL 和应用程序,并且您允许用户提供的名称在该级别构建 URL,那么您将遇到问题。我还建议使用“用户”、“成员”、“社区”或其他东西将它们分隔到自己的命名空间中。您可以在短期内进行重定向,以使过渡更加顺利。
  • @Ian 就我个人而言,我认为这样更好。我可以理解 muistooshort 的观点,但是您必须担心阻止用户使用某些名称。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-21
  • 2013-10-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多