我正在尝试让它工作:
dev.somedomain.tld *.dev.somedomain.tld *.somedomain.tld
我创建了两个 SSL 证书,一个包含 dev.somedomain.tld 和 *.somedomain.tld,另一个包含 *.dev.somedomain.tld。
我还创建了两个 VHost:
<VirtualHost 192.168.5.47:443>
ServerName dev.somedomain.tld
ServerAlias *.somedomain.tld
</VirtualHost>
<VirtualHost 192.168.5.47:443>
ServerName something.dev.somedomain.tld
ServerAlias *.dev.somedomain.tld
</VirtualHost>
问题是:无论 Apache 中的优先级如何,anything.dev.somedomain.tld 都会转到 dev.somedomain.tld vhost。
对于更高级别的通配符,有什么特别的事情要做吗?
答案1
根据 Apache 文档,VirtualHosts 顺序很重要。您可以通过运行来检查 VirtualHosts 顺序httpd -S
。
请参阅我的具有不同 VirtualHosts 顺序的示例:
[root@~]# httpd -S
VirtualHost configuration:
192.168.5.47:443 is a NameVirtualHost
default server dev.somedomain.tld (/etc/httpd/conf/httpd.conf:353)
port 443 namevhost dev.somedomain.tld (/etc/httpd/conf/httpd.conf:353)
wild alias *.somedomain.tld
port 443 namevhost something.dev.somedomain.tld (/etc/httpd/conf/httpd.conf:358)
wild alias *.dev.somedomain.tld
[root@~]# httpd -S
VirtualHost configuration:
192.168.5.47:443 is a NameVirtualHost
default server something.dev.somedomain.tld (/etc/httpd/conf/httpd.conf:353)
port 443 namevhost something.dev.somedomain.tld (/etc/httpd/conf/httpd.conf:353)
wild alias *.dev.somedomain.tld
port 443 namevhost dev.somedomain.tld (/etc/httpd/conf/httpd.conf:358)
wild alias *.somedomain.tld
答案2
好的,所以 something.dev.somedomain.tld 位于名为“5-something.dev.somedomain.tld.conf”的文件中,而“dev.somedomain.tld”位于“20-dev.somedomain.tld.conf”中。我原本以为 something.dev.somedomain.tld 会在之前加载,但事实并非如此,它加载的时间晚了。我不得不将优先级设置为“05”而不是“5”,问题就解决了。