Apache 2.4 和 VirtualHosts 的问题

Apache 2.4 和 VirtualHosts 的问题

有人能告诉我我在这里做错了什么吗,我有 1 台运行 Apache 2.4 的服务器,其中有 3 个 VirtualHosts,设置如下:

<VirtualHost helpedsk.example.com:80>
ServerAdmin [email protected]
DocumentRoot "${SRVROOT}/htdocs/hesk"
ServerName helpdesk.example.com
ErrorLog "logs/error.log"
CustomLog "logs/access.log" common
    <Directory "${SRVROOT}/htdocs/hesk">
        Require all granted
        Options Indexes FollowSymLinks ExecCGI
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

<VirtualHost wiki.example.com:80>
    ServerAdmin [email protected]
    DocumentRoot "${SRVROOT}/htdocs/dokuwiki"
    ServerName wiki.example.com
    ErrorLog "logs/error.log"
    CustomLog "logs/access.log" common
    <Directory "${SRVROOT}/htdocs/dokuwiki">
        Require all granted
        Options Indexes FollowSymLinks ExecCGI
        AllowOverride All
        Require all granted
    </Directory>

</VirtualHost>

<VirtualHost docs.example.com:80>
    ServerAdmin [email protected]
    DocumentRoot "${SRVROOT}/htdocs/drupal"
    ServerName docs.example.com
    ErrorLog "logs/error.log"
    CustomLog "logs/access.log" common
    <Directory "${SRVROOT}/htdocs/drupal">
        Require all granted
        Options Indexes FollowSymLinks ExecCGI
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

但是由于某种原因,只有最后一个有效,第一个向我显示了服务器的文档根目录(没有 hesk),第二个进入无限重定向到其自身,我不知道为什么,第二个可能与我设置它指向服务器 ip/dokuwiki 有关,我可以稍后更改,但是为什么第一个不会使用 hesk?

使用 serverip/site 访问时,所有这些站点都可以正常工作,但是尝试通过名称访问时,只有最后一个站点可以工作。

答案1

没关系,我将所有 VirtualHost 行更改为 *:80,并将 ServerName 与站点 URL 保留在其中,现在它就可以正常工作了。

相关内容