0 linux ubuntu virtualhost apache-2.2
我的 Ubuntu 服务器在 /etc/apache2/sites-enabled/002-foosite 中有这个
<VirtualHost 72.14.xxx.yyy:80>
ServerName foosite.com
ServerAlias www.foosite.com
DocumentRoot /home/bar/public_html
ServerAdmin bar@gmail.com
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
每次访问服务器的 80 端口时,我都会获取 /home/bar/public_html 的内容。但我想要做的是根据用户访问的 URL 拥有多个 DocumentRoot。例如:
http://server/bar should go have DocumentRoot /home/bar/public_html
http://server/pligg should have DocumentRoot /srv/www/pligg
http://server/~blah should have DocumentRoot /home/blah/public_html
Run Code Online (Sandbox Code Playgroud)
我确信这不是一个不常见的设置,但我并不真正理解 Alias、VirtualHost、NameVirtualHost 和所有其他设置之间的区别来配置它。我怎样才能做到这一点?
谢谢!
一个了NameVirtualHost是,你必须在不同的主机名不同的网站,但具有相同的IP地址。例如,如果 server1.com 和 server2.com 都具有相同的 IP 地址,您将为此使用 namevirtualhost。
在 server1.com 和 server2.com 的地址不同的情况下,虚拟主机也可以用ip 地址分隔。
一个别名将在的情况下,可以使用HTTP://服务器/的Pligg例子你张贴,链接以其它方式位于别处的一个目录(通常外的文件根)。在 <VirtualHost> 容器中,别名将仅适用于该虚拟主机。如果放在它之外,别名将适用于所有虚拟主机。
Alias /pligg/ "/srv/www/pligg/"
<Directory "/srv/www/pligg">
Order allow,deny
Allow from all
</Directory>
Run Code Online (Sandbox Code Playgroud)
http://server/~blah,其中 blah 是用户,位置在 blah 的主目录中,应使用userdir进行配置。要启用 userdir(在 debian/ubuntu apache 上),您可以使用“a2enmod”脚本,例如。a2enmod user_dir。