配置虚拟主机时出现问题

配置虚拟主机时出现问题

我正在尝试为我的计算机配置 apache 虚拟主机。但我在这样做时遇到了问题。

我已经在 C:\WINDOWS\system32\drivers\etc\hosts 中进行了必要的更改,然后在 C:\xampp\apache\conf\extra\httpd-vhosts.conf 中进行了必要的更改,我在 httpd-vhosts.conf 中添加了以下几行

########################Virtual Hosts Config below##################

NameVirtualHost 127.0.0.1

    <VirtualHost localhost>
        ServerName localhost
        DocumentRoot "C:\xampp\htdocs"
        DirectoryIndex index.php index.html

        <Directory "C:\xampp\htdocs">            
            AllowOverride All            
        </Directory>
    </VirtualHost>


    <VirtualHost virtual.cloudse7en.com>
        ServerName virtual.cloudse7en.com
        DocumentRoot "C:\development\virtual.cloudse7en.com\httpdocs"
        DirectoryIndex index.php index.html

        <Directory "C:\development\virtual.cloudse7en.com\httpdocs">
            Options Indexes FollowSymLinks Includes ExecCGI
            AllowOverride All
            Order allow,deny
            Allow from all
        </Directory>
    </VirtualHost>

    <VirtualHost virtual.app.cloudse7en.com>
        ServerName virtual.app.cloudse7en.com
        DocumentRoot "C:\development\virtual.app.cloudse7en.com\httpdocs"
        DirectoryIndex index.php index.html

        <Directory "C:\development\virtual.app.cloudse7en.com\httpdocs">
            Options Indexes FollowSymLinks Includes ExecCGI
            AllowOverride All
            Order allow,deny
            Allow from all
        </Directory>
    </VirtualHost>


########################################################################

我启动了我的 xampp 并尝试http://本地主机在浏览器中。此操作有效,并打开http://localhost/xampp/

但是当我尝试 http:http://virtual.app.cloudse7en.com它再次打开http://virtual.app.cloudse7en.com/xampp/

我不明白原因。另外,我有一个 Windows Vista 64 位操作系统。我是否还需要进行其他更改?

问候 Zee

答案1

在任何情况下,后面的部分都<VirtualHost必须与后面的部分相匹配NameVirtualHost。(此功能使得在一台机器上的多个 IP 地址上拥有多个域成为可能。)对于您的情况:

<VirtualHost 127.0.0.1>

答案2

扩展 Jason 的回答,Apache 使用来自客户端的 HTTP 标头,该标头必须与给定配置块内的 ServerName 变量匹配;配置块必须与相同的 IP 接口匹配。编写您正在做的事情的最典型方式是这样的:

NameVirtualHost *:80

<VirtualHost *:80>
  ServerName default.server.com
  ...
</VirtualHost>

<VirtualHost *:80>
  ServerName virtual-1.server.com
  ...
</VirtualHost>

<VirtualHost *:80>
  ServerName virtual-2.server.com
  ...
</VirtualHost>

如果您想要专门使用 127.0.0.1,那也没问题,同样有效。但是,有一种更有趣的方法可以做到这一点,它不涉及使用主机文件 - 不同的端口。它可能看起来像:

Listen 80
Listen 81
Listen 82

NameVirtualHost *:80
NameVirtualHost *:81
NameVirtualHost *:82

<VirtualHost *:80>
  ServerName default.server.com
  ...
</VirtualHost>

<VirtualHost *:81>
  ServerName virtual-1.server.com
  ...
</VirtualHost>

<VirtualHost *:82>
  ServerName virtual-2.server.com
  ...
</VirtualHost>

然后您需要做的就是使用不同的端口进行网页浏览:

http://localhost:80/
http://localhost:81/
http://localhost:82/

...每一个都会带你到那个配置块。

答案3

相关内容