为不同的项目/公司设置子域名

时间:2015-05-20 12:12:23

标签: php apache xampp

我想为我的网络应用提供子域名,如下所示:

  • company1.mysite.com
  • company2.mysite.com

我该怎么做呢?我是否需要为每家公司设置虚拟主机?

或者我可以像以下一样进行捕捉:

  • *。mysite.com

这里的典型方法是什么?

我对如何显示正确内容的想法是,我将获取URL的前缀部分,检查数据库中该公司的ID,然后只需使用该ID来恢复正确的内容...... < / p>

问题在于我不确定如何在PHP和Apache中以编程方式创建子域名

我正在使用Windows(所以本地我将编辑Windows主机文件)

1 个答案:

答案 0 :(得分:1)

首先,您需要在dns服务器中定义通配符规则。

例如在bind(linux等)中,我喜欢这样:

somedomain.com.      IN      A       111.222.222.222
*.somedomain.    IN      A       111.222.222.222

然后在virtualhost文件中添加:

NameVirtualHost *:80

<VirtualHost *:80>
  ServerName somedomain.com
  ServerAlias *.somedomain.com
  DocumentRoot /var/www/public
</VirtualHost>

此示例适用于获取子域并使用其逻辑的一个大型单个应用程序。

所以,如果每个应用都是分开的,那么:

<VirtualHost *:80>
    ServerName somedomain.com
    ServerAlias *.somedomain.com
    VirtualDocumentRoot /var/www/%1/public
</VirtualHost>