我正在尝试在其中创建通配符域
-我在https://example.com上有根服务器(登录页面)
-以及https://*.example.com
上的所有子域(完全动态)这是通配符虚拟主机(在SSL include下列出,其中包含根域):
<VirtualHost *:443>
ServerName test.example.com
ServerAlias *.example.com:443
DocumentRoot /opt/lampp/htdocs/production/
SSLEngine on
SSLCertificateFile /etc/cert.pem
SSLCertificateKeyFile /etc/privkey.pem
SSLCertificateChainFile /etc/chain.pem
</VirtualHost>
这对于test.example.com正常工作,但是当我尝试进行其他操作(例如123.example.com)时,它将默认使用httpd-ssl中定义的第一个虚拟主机,而不是该主机。
所以我的问题是,看到我在virtualhost中设置的任何ServerName都能正常工作,而其余的都不起作用,如何让子域覆盖默认的virtualhost?如果没有ServerName,则始终默认为根(仅ServerAlias)。
我尝试将这段代码放在默认主机之前(在httpd-ssl之前),但始终将其用于root用户。
谢谢!
答案 0 :(得分:0)
我已通过将代码段置于默认值上方并删除ServerName来修复了该问题。问题是我的根目录www。中有ServerName,但我没有使用www。