Apache 虚拟主机无法在 .com 域名上运行

Apache 虚拟主机无法在 .com 域名上运行

我遇到了一个奇怪的问题。

我有两个域名:mysite.co.uk 和 mysite.com,它们需要指向我服务器上的同一个目录。mysite.co.uk 的 VHost 运行正常。但是,mysite.com 不起作用。

当我重新启动 Apache 时,我没有看到任何错误。当我输入域时,它正在到达正确的服务器,但向我显示了索引文件/var/www,而不是重定向到/var/www/html/mysite.co.uk/web/

我的代码有错误吗?它与 mysite.co.uk 的配置上显示的完全相同,所以我很困惑为什么它不能正常工作。

可用站点:

<VirtualHost *:80>
ServerName mysite.com
DocumentRoot /var/www/html/mysite.co.uk/web/
ServerAlias *mysite.com
</VirtualHost>

Apache.conf:

<VirtualHost *:80>
ServerName *.mysite.com
DocumentRoot "/var/www/html/mysite.co.uk/web/"
</VirtualHost>

答案1

只要您想要在两个 URL 上显示的内容位于服务器上的同一文件夹中,您就应该能够使用单个 vhost 条目执行此操作。

<VirtualHost *:80>
ServerName mysite.com
ServerAlias mysite.co.uk *.mysite.co.uk *.mysite.com
DocumentRoot /var/www/html/mysite.co.uk/web/
</VirtualHost>

如果您在单独的文件中设置了新的虚拟主机,则默认虚拟主机也可能会背叛您。

如果您运行的是 Ubuntu(或其他发行版),您可以从命令行使用“apache2ctl -D DUMP_VHOSTS”来显示正在接受的服务器名称以及它们所在的配置文件:行。

注意 - 这没有列出在 ServerAlias 行中添加的地址

答案2

我认为您不应该在第二个ServerName指令(在 Apache.conf 中)中使用通配符,请尝试暂时将其替换为 www,同时将通配符别名保留在可用站点中,如果您有多个 mysite.com 子域,服务器将响应该子域。

相关内容