【问题标题】:Apache Vhosts HTTP and HTTPS (both) redirect to another domainApache Vhosts HTTP 和 HTTPS(两者)重定向到另一个域
【发布时间】:2019-04-12 10:14:30
【问题描述】:

我正在尝试将 Domain-A 的两个版本(HTTP 和 HTTPS)重定向到另一个域 Domain-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>
  • 按预期向 DOMAIN-B 的 HTTP(端口 80)请求 DOMAIN-A

  • 对 HTTPS(端口 443)DOMAIN-A 的请求不重定向,而是给我 SSL 证书错误。由于 DOMAIN-A 没有 SSL,因此呈现我的默认服务器证书而不是重定向。 (SSL BAD DOMAIN)当我在浏览器中接受异常时,它会重定向。

问题***

你能看到我的虚拟主机文件有什么错误吗?还是我需要为要重定向的域创建 SSL 证书?任何更简单的解决方法?

非常感谢

【问题讨论】:

    标签: apache vhosts


    【解决方案1】:

    您必须在端口 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 上没有该域的配置。也许您也应该添加它。

    【讨论】:

      猜你喜欢
      • 2013-05-01
      • 2015-12-02
      • 2013-09-27
      • 2016-02-04
      • 2021-07-30
      • 1970-01-01
      • 2015-02-03
      • 1970-01-01
      • 2016-01-17
      相关资源
      最近更新 更多