【发布时间】:2017-06-03 19:58:35
【问题描述】:
您好,我有以下用例,我在远程服务器 /var/www/foobar 上有一个应用程序(我们称之为 foobar),并且我有以下 Apache VirtualHost conf
<VirtualHost *:80>
DocumentRoot /var/www
# This is to redirect http traffic to https
Redirect permanent / https://example.com/
</VirtualHost>
<VirtualHost *:443>
SSLEngine On
SSLCertificateFile /etc/ssl/certs/example.com.crt
SSLCertificateKeyFile /etc/ssl/private/example.com.key
SSLCertificateChainFile /etc/ssl/certs/example.com.bundle.crt
ServerName example.com:443
DocumentRoot /var/www/foobar
</VirtualHost>
而且一切正常。现在假设我有另一个域 example2.com,我希望它指向同一个 foobar 应用程序。我目前的想法是在下面创建另一个 VirtualHost,像这样
<VirtualHost *:443>
SSLEngine On
SSLCertificateFile /etc/ssl/certs/example2.com.crt
SSLCertificateKeyFile /etc/ssl/private/example2.com.key
SSLCertificateChainFile /etc/ssl/certs/example2.com.bundle.crt
ServerName example2.com:443
DocumentRoot /var/www/foobar
</VirtualHost>
但我想知道这是做这种事情的正确方法吗?我需要两个域都是“独立的”,所以我没有从 example2.com 永久重定向到 example.com
【问题讨论】:
-
您使用两个虚拟主机的配置通常用于两个域。问题是什么?你有错误吗?
-
只是想知道这是一个很好的做法,因为您可以看到 example1.com 和 example2.com 都指向同一个应用程序。
-
提供对不同名称的相同应用程序的访问是一种常见的解决方案。通常还涉及到各个站点的一些自定义配置
-
哦,好的,谢谢,我会坚持这个配置,只是想知道是否有更好的方法,例如 ServerAlias 但 SSL 证书有效。
-
您可以使用
ServerAlias和通配符作为提议@ycr,但随后需要使用子域,例如。*.domain.com应用于example1.domain.com和example2.domain.com