我通过IP在子文件夹( http:// ip / app )中托pipe多个应用程序 。 我现在想要托pipe一个域,我已经能够设置虚拟主机,以便域正确加载它的文档根,但其余的应用程序停止工作,并指向同一个域的虚拟主机文档根。
如何维护我现有的设置,以便所有其他请求的行为相同?
这听起来像你希望服务器的IP服务的内容独立于你configuration的新的VirtualHost 。
除非另有configuration,否则Apache服务器将在访问IP时默认为在VirtualHost外部指定的DocumentRoot 。 使用IP或_default_ VirtualHost指定VirtualHost也可以。
如果您需要额外的帮助,请提供其他信息,包括完整的Apacheconfiguration文件。
如果之前没有定义VirtualHosts,则对服务器的请求将通过httpd.conf / apache2.conf中的标准configuration进行过滤。
这将意味着主机将绑定到Listen行指定的任何东西,并从Apacheconfiguration文件中指定的标准DocumentRoot (默认情况下,这是基于Redhat的系统上的/ var / www / html)提供服务。
一旦开始添加VirtualHost和NameVirtualHost指令,而不是遵循这些约定,对未指定的ServerName请求将改为过滤到第一个指定的VirtualHost节。
如果你使用httpd -S (debuntu上的apache2 -S )转储Apacheconfiguration,你可以看到这个:
[root@server]$ httpd -S VirtualHost configuration: wildcard NameVirtualHosts and _default_ servers: *:80 is a NameVirtualHost default server somesite.com (/etc/httpd/conf/httpd.conf:1050) port 80 namevhost somesite.com (/etc/httpd/conf/httpd.conf:1050) port 80 namevhost othersite.org (/etc/httpd/conf/httpd.conf:1074) Syntax OK
您基本上只需要定义一个与您的默认configuration相匹配的VirtualHost,即将DocumentRoot设置为DocumentRoot的主configuration,然后再次configuration基本指令,以免它们被覆盖。 您需要将此VirtualHost作为Apacheconfiguration中的第一个。