【问题标题】:Subdomains for redirection only仅用于重定向的子域
【发布时间】:2011-11-14 22:55:38
【问题描述】:

我的域名是meeting.com

我主要使用 PHP、jQuery。没有 ASP。

当用户创建帐户时,我希望创建一个子域user.meeting.com,仅用于重定向目的。我不希望子域真实存在。

当有人加载john13.meeting.com 时,我希望网站重定向到meeting.com?user=john13(我不在乎john13.meeting.com 是否保留在URL 栏中)。

在 PHP 或 Apache 中自动执行此操作的最有效和最简单的方法是什么?请考虑性能,因为我有很多用户。

【问题讨论】:

  • 这(通常)不会由 Apache .htaccess 处理吗?
  • @JarredFarrish 我不在乎它是否在 .htaccess 中,我只想知道如何高效而简单地完成它。 ;)

标签: apache .htaccess redirect subdomain


【解决方案1】:

您不需要 PHP。启用rewrite module 的正确 Apache 配置将起到作用。

例如(未测试):

RewriteCond %{HTTP_HOST} !^www\.meeting\.com?$
RewriteCond %{HTTP_HOST} ^([^.]+)\.meeting\.com?$
RewriteRule ^$ /user/%1 [L]

或者,如果您不为 SEO 进一步重写,规则可能是

RewriteRule ^$ /index.php?user=%1 [L]

如需更多灵感,请查看 Shef 与 another example 发布的链接,了解如何实现这一目标。

【讨论】:

  • 我原以为这是Redirect 的重写风格,尽管我认为这个问题还有待讨论。
  • 这是什么意思,为什么要重定向?重定向意味着子域曾经存在并且内容已经移动。如果我理解正确的话,那不是你想要的。
  • 我不是 OP,但我的意思是浏览器指向另一个资源,而不是仅在服务器上重写并且用户永远不知道。我最初的想法是这将是一个重定向(比如使用header('Location:)),而不是一个透明的重写,但我不确定 OP 真正想要/需要什么。
  • @markus 有没有办法让服务器在 PHP 中处理 URL?例如,如果我希望在我的 SQL 数据库中将用户名转换为它的匹配 ID,我无法使用 htaccess 文件来实现。如果我不能,我会找到一种方法来重写我的代码,以使其适合您提出的方法。
  • @Jared Farrish 我只想使用适当的 GET 变量将假子域重定向到主域。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-01-07
  • 2018-10-19
  • 1970-01-01
  • 1970-01-01
  • 2019-03-03
  • 2016-06-10
  • 1970-01-01
相关资源
最近更新 更多