我需要在Linux上安装Apache 2.2的服务器,并且需要通过URI来区分两个VirtualHost。
但只有一个域名和一个IP地址。 而且我不能使用Alias。
我尝试过这样的事情,但这不起作用:
<VirtualHost *:80> DocumentRoot /var/www/app1 ServerName localhost/app1 ServerAlias www.localhost/app1 <Directory /var/www/app1> Allow from all </Directory> </VirtualHost> <VirtualHost *:80> DocumentRoot /var/www/app2 ServerName localhost/app2 ServerAlias www.localhost/app2 <Directory /var/www/app2> Allow from all </Directory> </VirtualHost>
我需要这个原因,我需要为每个虚拟主机configuration一个错误日志。
我想,我可以做一些与ServerPath的,但我不知道如何。
编辑:非常感谢你的第一个答案,它的工作:D
你可以做的是为不同的虚拟主机build立一个反向代理 ,仅仅在loopback上进行监听。
你将会进入你的www.localhost虚拟主机:
<VirtualHost *:80> DocumentRoot /var/www/ ServerName localhost ServerAlias www.localhost ProxyPassReverse /app1/ http://webapp1.local/ ProxyPassReverse /app2/ http://webapp2.local/ </Virtualhost>
并为这些应用程序创build两个虚拟主机:
<VirtualHost 127.0.0.1:80> DocumentRoot /var/www/app1 ServerName webapp1.local <Directory /var/www/app1> Allow from all </Directory> </Virtualhost> <VirtualHost 127.0.0.1:80> DocumentRoot /var/www/app2 ServerName webapp2.local <Directory /var/www/app2> Allow from all </Directory> </Virtualhost>
确保将webapp1.local和webapp2.local添加到/etc/hosts文件中。 另一种可能性是apache-server-multiple-directories-different-error-logs