如何创建子域每

问题描述:

网站比如我想创建一个网络平台,让每个客户得到了自己的网站,如uservoice.com如何创建子域每

例子:

  • 主要网站:uservoice.com
  • 客户1:cust1-子域 .uservoice.com
  • 客户2:cust2-子域 .uservoice.com

的目标是,客户可以通过其自己的URL &登录页面输入其网站。

有谁知道该怎么做?如何通过子域避免子目录并复制所有文件?我正在寻找一个干净和可扩展的解决方案。

我认为解决方案是一个基于名称的虚拟主机。

例如,域cust2-subdomain.uservoice.com将显示位于与DocumentRoot不同的文件夹中的内容,但地址将保持不变。服务器将识别域并发送适当的内容。


如果您使用的是Apache:您需要去掉这一行的httpd.conf文件如果尚未取消注释:

Include conf/extra/httpd-vhosts.conf 

那么你应该修改在/ usr /本地/ apache2的/ conf目录/额外的/的httpd-vhosts.conf。

<VirtualHost *:80> 
    ServerAdmin [email protected] 
    DocumentRoot "/usr/local/apache2/docs/uservoice.com" 
    ServerName uservoice.com 
    ServerAlias www.uservoice.com 
    ErrorLog "logs/uservoice.com/error_log" 
    CustomLog "logs/uservoice.com/access_log" common 
</VirtualHost> 

<VirtualHost *:80> 
    ServerAdmin [email protected] 
    DocumentRoot "https://*.com/users/customers/cust2/WWW" 
    ServerName cust2-subdomain.uservoice.com 
    ServerAlias www.cust2-subdomain.uservoice.com 
    ErrorLog "logs/cust2/error_log" 
    CustomLog "logs/cust2/access_log" common 
</VirtualHost> 

第一部分是您的网站,第二部分是cust2的网站。所以cust2会把他的网站放到位于他的主目录中的WWW文件夹中。您将把您的内容放入旧的DocumentRoot中。 (您需要自定义/usr/local/apache2/conf/extra/httpd-vhosts.conf)。

+0

为了访问cust2-subdomain.uservoice.com我还需要创建一个DNS子域,否则它将由Apache处理,我只需要在我的dns中注册uservoice.com? –

+0

是的。 也可以使用通配符DNS记录。 http://*.com/questions/13441418/automatic-sub-domain-registration – les

+0

你可以用这个注册所有子域名: * .uservoice.com – les