Web 如何为每个子域创建站点实例

Web 如何为每个子域创建站点实例,web,subdomain,url-routing,uservoice,Web,Subdomain,Url Routing,Uservoice,我想创建一个web平台,每个客户都可以像这样获得自己的网站 示例: 主网站:uservoice.com 客户1:cust1-subdomain.uservoice.com 客户2:cust2-subdomain.uservoice.com 目标是客户可以通过自己的url和登录页面进入其网站 有人知道怎么做吗?如何通过子域避免子目录并复制所有文件?我正在寻找一个干净且可扩展的解决方案。我认为该解决方案是基于名称的虚拟主机 例如,域cust2-subdomain.uservoice.com将显示

我想创建一个web平台,每个客户都可以像这样获得自己的网站

示例:

  • 主网站:uservoice.com
  • 客户1:cust1-subdomain.uservoice.com
  • 客户2:cust2-subdomain.uservoice.com
目标是客户可以通过自己的url和登录页面进入其网站


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

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

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


如果您使用的是apache:如果尚未取消注释,则需要在httpd.conf文件中取消注释这一行:

Include conf/extra/httpd-vhosts.conf
然后您应该编辑/usr/local/apache2/conf/extra/httpd-vhosts.conf

<VirtualHost *:80>
    ServerAdmin you@uservoice.com
    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 cust2@uservoice.com
    DocumentRoot "/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>

服务器管理员you@uservoice.com
DocumentRoot“/usr/local/apache2/docs/uservoice.com”
ServerName uservoice.com
ServerAlias www.uservoice.com
ErrorLog“logs/uservoice.com/error\u log”
CustomLog“logs/uservoice.com/access_log”通用
服务器管理员cust2@uservoice.com
DocumentRoot“/users/customers/cust2/WWW”
ServerName cust2-subdomain.uservoice.com
ServerAlias www.cust2-subdomain.uservoice.com
错误日志“日志/客户2/错误日志”
自定义日志“日志/cust2/access\u log”通用

第一部分是针对您的站点,第二部分是针对cust2的站点。因此,cust2将把他的站点放入位于其主目录中的WWW文件夹中。您将把内容放在旧的DocumentRoot中。(您需要自定义/usr/local/apache2/conf/extra/httpd vhosts.conf)。

为了访问cust2-subdomain.uservoice.com,我是否仍然需要创建DNS子域,或者它将由Apache处理,我只需要在DNS中注册uservoice.com?是的。也可以使用通配符DNS记录。您可以使用以下命令注册所有子域:*.uservoice.com是的,我将使用通配符dns记录。在我开发asp.net平台时,我将使用MVC路由。我也可以使用iis重写模块来实现我的目标。