指向通配符文件夹的子域名

指向通配符文件夹的子域名

我最近让我的域名与我的服务器配合良好,并设法让子域名指向特定文件夹。然而,我刚刚注意到一个小问题。我已将其/etc/apache2/sites-enabled/000-default设置为:

<VirtualHost *:80>
        VirtualDocumentRoot /local/www/%1
        ServerName *.dev.localhost
</VirtualHost>

当我打开test.dev.mydomain.co.uk它时,它显示了内容,/local/www/test/这很棒。但是,我输错了域名,意识到test.mydomain.co.uk当你错过.dev.部分时,它也会做同样的事情。我不希望这种情况发生。有人能提出任何修复建议吗?

答案1

如果...

  • 上面的块VirtualHost是你的配置中的第一个块,
  • 没有明确匹配,例如,test.mydomain.co.uk

...然后 Apache 将使用上面的VirtualHosttest.mydomain.co.uk。也就是说,如果没有显式匹配,Apache 将使用VirtualHost它找到的第一个定义。从文档

如果在包含最具体的匹配 IP 地址和端口组合的虚拟主机集合中未找到匹配的 ServerName 或 ServerAlias,则将使用匹配的第一个列出的虚拟主机。

答案2

解答了疑问:

<VirtualHost *:80>
    VirtualDocumentRoot /local/www/%1
    ServerName dev.mydomain.co.uk
    ServerAlias dev.mydomain.co.uk *.dev.mydomain.co.uk
</VirtualHost>

通过使用 ServerAlias。

相关内容