0

我在 Apache 中有多个 VirtualHost,它们都在端口 80 上侦听,它们的 ServerNames 设置为不同的网址。当我直接访问该 IP 地址时,Apache 默认将我发送到其中一个网站。我想更改哪个虚拟主机处理对 IP 地址的请求。我该怎么做?

<!-- This is currently the default (probably because it's first alphabetically) -->
<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName mywebsite.com
    DocumentRoot /var/www/testingother
    ...
</VirtualHost>


<!-- I want this to be default -->
<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName myotherwebsite.com
    DocumentRoot /var/www/testing
    ...
</VirtualHost>
4

2 回答 2

1

从我自己的 apache 配置文件中:

#
# DocumentRoot: The directory out of which you will serve your
# documents. By default, all requests are taken from this directory, but
# symbolic links and aliases may be used to point to other locations.
#
DocumentRoot "/var/www/html"

请注意,这DocumentRoot是在一个VirtualHost块之外。我会假设你有类似的东西,但如果没有,你可以这样设置。那会更容易,然后弄乱它们出现的顺序。

于 2013-06-20T17:24:51.877 回答
0

默认虚拟主机是第一个被加载的主机。

  • 当在单个文件中时httpd.confvhosts.conf只需更改虚拟主机的顺序。
  • 在基于 vhost 文件的配置中(例如 Debian 使用该配置)时,约定在 vhost 文件前加上一个数字。默认通常是000-default.

来自Apache 文档

如果请求包含未知或没有 Host: 标头,则始终从基于主名称的虚拟主机(该地址/端口的虚拟主机出现在配置文件中的第一个)提供服务。

于 2013-06-20T17:23:19.043 回答