在 Apache 虚拟主机容器中使用变量

在 Apache 虚拟主机容器中使用变量

如果请求来自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

答案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>

相关内容