如果请求来自http://xxx.域名.com,
我希望能够说;
DocumentRoot /home/${SUBDOMAIN_NAME}
这样虚拟主机的 DocumentRoot 将被分配给 /home/xxx
有什么方法可以实现这个目的吗?
感谢:D
附言:请不要担心安全性或这个想法有多糟糕。为了简单起见,我过度简化了这个问题。
实际用法如下:
<IfModule mpm_itk_module> AssignUserId ${SUBDOMAIN_NAME} usergroup </IfModule>
将会有一个具有相应子域名的unix用户。
答案1
我认为您正在寻找的是海量虚拟主机: http://httpd.apache.org/docs/1.3/vhosts/mass.html
或者http://httpd.apache.org/docs/1.3/mod/mod_vhost_alias.html
你可能想要这样的东西:
UseCanonicalName Off
VirtualDocumentRoot /home/%-1
%-1 将获取子域名。
阅读列出的网站以获取更多信息。
答案2
答案由 Jeff 提供。
答案3
NameVirtualHost *:80
<VirtualHost *:80>
ServerName xxx.example.com
DocumentRoot /www/xxx
</VirtualHost>
<VirtualHost *:80>
ServerName yyy.example.com
DocumentRoot /www/yyy
</VirtualHost>
以上是一个基于名称的简单示例...您也可以使用基于 ip 的:
<VirtualHost xxx.example.com>
ServerAdmin [email protected]
DocumentRoot /groups/example/xxx
ServerName xxx.example.com
ErrorLog /groups/example_xxx/logs/error_log
TransferLog /groups/example_xxxx/logs/access_log
</VirtualHost>
<VirtualHost yyy.example.com>
ServerAdmin [email protected]
DocumentRoot /groups/example/yyy
ServerName yyy.example.com
ErrorLog /groups/example_yyy/logs/error_log
TransferLog /groups/example_yyy/logs/access_log
</VirtualHost>