Apache vhost 重定向到另一个 vhost

Posted

技术标签:

【中文标题】Apache vhost 重定向到另一个 vhost【英文标题】:Apache vhost redirects to another vhost 【发布时间】:2021-06-16 18:46:25 【问题描述】:

我为两个不同的虚拟主机设置了两个项目,问题是无论我尝试打开哪个 URL,我都会被重定向到第一个。

Windows 主机文件:

127.0.0.1 myfirst-project.local
127.0.0.1 mysecond-project.local

Apache 虚拟主机文件:

<VirtualHost myfirst-project.local:80>
    DocumentRoot "D:\projects\first"
    ServerName myfirst-project.local
    ErrorLog "logs/first-error.log"
    CustomLog "logs/first-access.log" common
 
    <Directory "D:\projects\first">
      Options FollowSymLinks MultiViews
      AllowOverride AuthConfig FileInfo
      Require all granted
    </Directory>
</VirtualHost>


<VirtualHost mysecond-project.local:80>
    DocumentRoot "D:\projects\second"
    ServerName mysecond-project.local
    ErrorLog "logs/second-error.log"
    CustomLog "logs/second-access.log" common
 
    <Directory "D:\projects\second">
      Options FollowSymLinks MultiViews
      AllowOverride AuthConfig FileInfo
      Require all granted
    </Directory>
</VirtualHost>

如果我在浏览器上打开 mysecond-project.local,我会立即被重定向到 myfirst-project.local

我不知道为什么会这样。

【问题讨论】:

【参考方案1】:
httpd -S 

确定虚拟主机的实际加载位置/方式。如果您的 Apache 版本是 2.2 或更早版本,则必须在 VirtualHost 定义之前添加此行:

NameVirtualHost *:80 

【讨论】:

我试过了,没用。现在我从 vhosts 文件和 hosts 文件中删除了第一个虚拟主机,重新启动了 PC 和 xampp-apache 并仍然重定向到那个不存在的虚拟主机。

以上是关于Apache vhost 重定向到另一个 vhost的主要内容,如果未能解决你的问题,请参考以下文章

使用 apache vhost 配置重定向到新域

重定向时的 Apache vhost 双斜杠

回退 - 使用 apache vhost 配置重定向到新域

使用 apache vhost 配置有选择地重定向到新域

Apache2 vHost conf - 重定向到不同的服务器

apache中的vhost重写规则-摆脱子域而不重定向