我有这些子域名:
link.domain.com
links.domain.com
我想将 重定向link.domain.com
到links.domain.com
。为此,我使用了与此处所述相同的方法:将子域名重定向到子域名 Apache2并且它有效。
我使用 Let's Encrypt 安装了 TLS 证书links.domain.com
,可以完美地links.domain.com
通过 HTTPS 访问。我希望从link.domain.com
到 的重定向links.domain.com
也能在 HTTPS 中有效。
这是我的配置文件:
<IfModule mod_ssl.c>
<VirtualHost *:443>
DocumentRoot /var/www/links/
ServerName links.domain.com
<Directory "/var/www/links/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error_links.log
CustomLog ${APACHE_LOG_DIR}/access_links.log combined
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
SSLCertificateFile /etc/letsencrypt/live/links.domain.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/links.domain.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
</IfModule>
我已经尝试了以下操作:
添加
ServerAlias link.domain.com RedirectMatch permanent ^link.domain.com/(.*)$ https://links.domain.com/$1
在该
ServerName links.domain.com
行之后。添加
<VirtualHost *:443> ServerName link.domain.com RedirectMatch permanent ^/(.*)$ https://links.domain.com/$1 </VirtualHost>
在已经定义的VirtualHost之前和之后。
沒有人工作。
你有什么主意吗 ?
答案1
您需要在两个VirtualHost
s 中都进行 SSL 配置,但这RedirectMatch
不是必需的。尝试:
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName link.example.com
SSLCertificateFile /etc/letsencrypt/live/links.example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/links.example.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
Redirect / https://links.example.com/
</VirtualHost>
</IfModule>
请注意,NET::ERR_CERT_COMMON_NAME_INVALID
如果你没有link.example.com
在主题备用名称您的证书。