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