Apache2是否支持子域的虚拟托管?
目前我的Apache服务器是这样设置的Apache2是否支持子域的虚拟托管?,apache2,subdomain,virtualhost,Apache2,Subdomain,Virtualhost,目前我的Apache服务器是这样设置的 <VirtualHost *:80> ServerName www.example.com ServerAlias example.com DocumentRoot /var/www </VirtualHost> 因此,userjohn的所有文件都放在/var/www/john/文件夹中,userjane的文件也一样。然后,在关闭符号链接(默认情况下),并且仅从/var/www/user/向下提供访问权限(默认情况下也是如此
<VirtualHost *:80>
ServerName www.example.com
ServerAlias example.com
DocumentRoot /var/www
</VirtualHost>
因此,userjohn
的所有文件都放在/var/www/john/
文件夹中,userjane的文件也一样。然后,在关闭符号链接(默认情况下),并且仅从/var/www/user/
向下提供访问权限(默认情况下也是如此)的情况下,我不必担心john的网页,包括来自jane的网页的脚本/图像 仅使用本地度量(/etc/hosts
而不是DNS),我发现这确实可行
首先,将/etc/hosts
文件更改为具有所需网站名称()和目标IP地址(192.168.1.1)的映射。我使用了我的本地IP地址
IPAddress Hostname Alias
----------- -------------------------- ------------------
192.168.1.1 www.example.com example.com
192.168.1.1 www.john.example.com john.example.com
192.168.1.1 www.jane.example.com jane.example.com
在查看万维网之前,您的web浏览器将检查您的/etc/hosts
文件
接下来检查所有Apache配置文件(httpd.conf
,apache2.conf
,ports.conf
,conf.d/*
),并确保在文件中只发出一个NameVirtualHost*:80
命令(它不必是port:80
,但如果它被多次发布,您将获得)。我的是在/etc/apache2/ports.conf
中发布的,所以如果必须的话,请将您的放在那里。最后,像这样更新您的Apache配置文件(我的位于/etc/apache2/sites available/default
)
执行此操作后,john.example.com
将转到/var/www/john
。该目录将作为根目录,并且john
将不再具有www
的访问权限,因此,将无法访问/var/www/jane
同样,完成此操作后,jane.example.com
将转到/var/www/jane
。该目录将作为根目录,并且jane
将不再具有www
的访问权限,因此,无法访问/var/www/john
在关闭符号链接的情况下——默认情况下——两个目录都不能相互访问这帮助我记住了我忘记更改主机文件。感谢过去的人。@MeowMix很高兴我至少能帮助一个人命令a2ensite example.com
从可用的站点/example.com
到创建符号链接de>sites enabled/example.com
,相反的命令是a2dispate example.com
,这将禁用它。
IPAddress Hostname Alias
----------- -------------------------- ------------------
192.168.1.1 www.example.com example.com
192.168.1.1 www.john.example.com john.example.com
192.168.1.1 www.jane.example.com jane.example.com
<VirtualHost *:80>
ServerName www.example.com
ServerAlias example.com
DocumentRoot /var/www
</VirtualHost>
<VirtualHost *:80>
ServerName www.john.example.com
ServerAlias john.example.com
DocumentRoot /var/www/john
</VirtualHost>
<VirtualHost *:80>
ServerName www.jane.example.com
ServerAlias jane.example.com
DocumentRoot /var/www/jane
</VirtualHost>
# a2ensite www.example.com
# a2ensite www.john.example.com
# a2ensite www.jane.example.com