虚拟主机配置无法正确管理请求



我在httlp-vhosts.conf中有以下Virtualhost配置:

<VirtualHost *:80>
ServerName rest.budgettracker.loc
DocumentRoot "C:/xampp/htdocs/budget-develop/budget-develop/api/public"
ErrorLog "logs/rest.budgettracker.loc-error.log"
CustomLog "logs/rest.budgettracker.loc-access.log" common
</VirtualHost>
<VirtualHost *:80>
ServerName dev.budgettracker.loc
DocumentRoot "C:/xampp/htdocs/budget-develop/budget-develop"
ErrorLog "logs/budgettracker.loc-error.log"
CustomLog "logs/budgettracker.loc-access.log" common
</VirtualHost>

当我在浏览器中输入 dev.budgettrackerpro.com 时,它会转到rest.budgettrackerpro.loc virtualhost容器。

如果我删除其余请求的虚拟主机容器,它会正确定向到正确的 html/javascript 代码。显然,我需要其余调用才能使其正常工作。我研究过这个,直到我脸色发青,我做错了什么?请帮忙

你要求dev.budgettrackerpro。com. 您的配置适用于dev.budgettrackerpro。位置

发生的情况是:

  • Apache 看到您的请求位于端口 80 (http://...
  • 它检查哪些VirtualHost配置为从端口 80 获取流量。
  • 在这里它找到 2。 1( rest.budgettracker.loc 2( dev.budgettracker.loc
  • 由于您询问的域(.com(不匹配 1( 或 2(,Apache 假设它应该使用的 VirtualHost 是它找到的第一个。
  • Apache在查找多个VirtualHost或找不到匹配的VirtualHost时,使用文件中的第一个(从上到下(。

要解决此问题:

  • 请求 http://dev.budgettracker.loc
  • 修改您的VirtualHost以接受来自.com的流量,如下所示:

    <VirtualHost *:80>
    ServerName dev.budgettracker.loc
    ServerAlias dev.budgettracker.com
    DocumentRoot "C:/xampp/htdocs/budget-develop/budget-develop"
    ErrorLog "logs/budgettracker.loc-error.log"
    CustomLog "logs/budgettracker.loc-access.log" common
    </VirtualHost>
    

请注意新行,ServerAlias dev.budgettracker.com。 一个VirtualHost中可以有多个ServerAlias,但只能有一个ServerName