【问题标题】:redirection from www to no www从 www 重定向到非 www
【发布时间】:2015-12-18 14:32:23
【问题描述】:

我的 Apache 服务器上的虚拟主机中有以下内容,

Redirect permanent / https://domain.com
<directory />
        <IfModule mod_rewrite.c>
                Options +FollowSymlinks
                RewriteEngine On
        </IfModule>

        # Redirects WWW URL's to Non-WWW URL's

        <IfModule mod_rewrite.c>
                RewriteCond %{HTTPS} on
                RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
                RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L]
        </IfModule>
</directory>

我们拥有 domain.com 的 SSL,但对于 www.domain.com,我在重定向时遇到问题,如果用户转到 http://www.domain.com,他们将从那里重定向到 https://domain.com,但是如果用户转到https://www.domain.com,他们会得到您的连接不是私有的,也没有重定向。我认为这是因为 www 没有链接到 SSL,如果不为域名的 www 版本购买 SSL,是否仍然存在这种情况?

【问题讨论】:

  • 想知道这已被否决?

标签: apache .htaccess redirect ssl


【解决方案1】:

简短的回答。 没有办法做到这一点。安全方面,它从那时起。

到 https 的连接发生在之前任何类型的重定向发生。当您通过 https 连接到服务器本身时,您需要确保连接是有效且安全的。 之后,然后 Apache 处理请求并进行重写或其他任何事情。您唯一能做的就是购买证书。

这些是您的选择。只要该警告页面是自签名的并且这是设计使然,您的用户将始终收到该警告页面。

购买证书时,大多数 CA 会为您提供非和 www 版本。其他明智的另一个技巧是购买 www 版本,并且大多数情况下您还可以获得基本域。您可以以每年 4.99 美元的价格获得有效证书。它没有那么坏。

【讨论】:

    【解决方案2】:

    不,没有办法。 TLS 隧道在发送 HOST 变量之前建立。

    【讨论】: