0

我正在尝试使用以下场景来创建为注册用户提供自己的站点子域。我不想为每个用户添加 DNS 记录,但如果用户 jon 注册我希望他看到 jon.website.com 的 URL。从我读过的其他问题看来,这是可能的。

然而,我的实施和缺乏理解阻碍了我。这是我到目前为止所做的。

为域添加了 DNS 通配符 A 记录

*.website.com --> 网站前的 IP。12.2.3.4

在 www.website.com/application/ 中的 .htaccess 文件中添加了以下代码

<VirtualHost *:80>
  ServerName server.website.com
  ServerAlias *.website.com
  UseCanonicalName Off
</VirtualHost>

使用 PHP 查找子域

preg_match('/([^.]+)\.example\.org/', $_SERVER['SERVER_NAME'], $matches);
if(isset($matches[1])) {
    $subdomain = $matches[1];
}

我如何看待这项工作是,当用户注册时,会创建一个带有子域名的目录,如 www.website.com/application/subdomainName/ - 我可以处理这个问题 - 然后成功登录用户然后被定向到 www.website.com/application/jon/

我在这方面朝着正确的方向前进吗?如果是,那么我如何从我所在的地方到达我需要去的地方?这个比我的工资等级高很多!感谢您的任何建议!

4

1 回答 1

1

你的起步步骤是正确的,方向是正确的。我不明白你为什么要创建目录。

您只需要确保您的网站适用于任何域。因此,请确保所有指向资源的 URL 和链接都使用绝对路径。

我猜你会想要为每个用户定制体验。因此,您需要针对每个注册用户存储一些元数据,以便他们的网站具有不同的外观和感觉。最简单的方法是将元数据存储在数据库中的子域中。只需查看您的网站正在运行的当前子域并加载相应的用户即可确定该网站的外观。

于 2012-09-17T16:01:42.360 回答