[英]Apache Vhosts HTTP and HTTPS (both) redirect to another domain
我正在嘗試將兩個版本的域 A(HTTP 和 HTTPs)重定向到另一個域域 B。 很簡單的東西,但沒那么簡單。
看看我現在在做什么:
<VirtualHost *:80>
ServerName DOMAIN-A.com
ServerAlias www.DOMAIN-A.com
RewriteEngine on
RewriteRule (.*) http://DOMAIN-B.com? [R=301,L]
</VirtualHost>
<VirtualHost *:443>
ServerName DOMAIN-A.com
ServerAlias www.DOMAIN-A.com
RewriteEngine on
RewriteRule (.*) https://DOMAIN-B.com? [R=301,L]
</VirtualHost>
<VirtualHost *:443>
ServerName DOMAIN-B.com
DocumentRoot /var/www/DOMAIN-B/html
SSLEngine on
SSLCertificateFile "/etc/letsencrypt/live/DOMAIN-B/cert.pem"
SSLCertificateKeyFile "/etc/letsencrypt/live/DOMAIN-B/privkey.pem"
SSLCertificateChainFile "/etc/letsencrypt/live/DOMAIN-B/chain.pem"
</VirtualHost>
請求 HTTP(端口 80)DOMAIN-A 到 DOMAIN-B 符合預期
對 HTTPS(端口 443)DOMAIN-A 的請求不會重定向,而是給我 SSL 證書錯誤。 由於 DOMAIN-A 沒有 SSL,因此顯示我的默認服務器證書而不是重定向。 (SSL BAD DOMAIN)當我在瀏覽器中接受異常時,它會重定向。
題 ***
你能看到我的 vhost 文件有什么錯誤嗎? 還是我需要為要重定向的域創建 SSL 證書? 任何更簡單的解決方法?
非常感謝
您必須在端口 443 上包含 DOMAIN-A.com 的 SSL 文件,如下所示:
<VirtualHost *:80>
ServerName DOMAIN-A.com
ServerAlias www.DOMAIN-A.com
Redirect permanent / https://DOMAIN-B.com/
</VirtualHost>
<VirtualHost *:443>
ServerName DOMAIN-A.com
ServerAlias www.DOMAIN-A.com
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/DOMAIN-A/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/DOMAIN-A/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/DOMAIN-A/chain.pem
Redirect permanent / https://DOMAIN-B.com/
</VirtualHost>
<VirtualHost *:443>
ServerName DOMAIN-B.com
DocumentRoot /var/www/DOMAIN-B/html
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/DOMAIN-B/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/DOMAIN-B/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/DOMAIN-B/chain.pem
</VirtualHost>
你也有在DOMAIN-A.com一個小錯誤,重定向到http://DONMAIN-B.com/
但對於在80端口也許你應該也添加此該域沒有配置。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.