为PHP应用程序创建子域

时间:2012-09-17 15:52:12

标签: php apache

我正在尝试使用以下方案创建,以向注册用户提供自己的子网站到该网站。我不想为每个用户添加DNS记录,但如果用户jon注册,我希望他看到jon.website.com的URL。这似乎可以从我有read up on的其他问题中解决。

然而,我的实施和缺乏理解让我感到高兴。这是我到目前为止所做的。

添加DNS通配符域

的记录

*。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 /

我是朝着正确的方向前进吗?如果是,那么我如何从我所在的地方获得我需要去的地方?这个比我的工资等级高出一点!谢谢你的任何建议!

1 个答案:

答案 0 :(得分:1)

您的开始步骤正确并且方向正确。我不明白你为什么要创建目录。

您只需确保您的网站可以在任何域中使用。因此,请确保所有URL和资源链接都使用绝对路径。

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