https 到 http 重定向

Posted

技术标签:

【中文标题】https 到 http 重定向【英文标题】:https to http redirect 【发布时间】:2011-09-06 05:45:47 【问题描述】:

我到处搜索,仍然找不到任何答案。

我正在尝试重定向,例如:https://www.domain.com 到 http://www.domain.com

目前我有一个.htaccess 文件,其中包括:

选项 +FollowSymlinks 重写引擎开启 RewriteBase / RewriteCond %SERVER_PORT ^443$ [OR] RewriteCond %HTTPS =on 重写规则 ^(.*)$ http://www.domain.com/$1 [R=301,L]

但我不断收到以下错误:

连接到 www.domain.com 时出错。 SSL 收到超过最大允许长度的记录。 (错误代码:ssl_error_rx_record_too_long)...

我需要为 VirtualHost *:443 添加任何内容到我的 vhost 文件吗?对于 domain.com - 抱歉,对此很陌生。任何帮助/方向将不胜感激,谢谢!

【问题讨论】:

可能有很多事情,但为了帮助您缩小范围,通常 SSL 错误会出现之前它甚至到达 htaccess。在 htaccess 指令之前提供了有关 SSL 的浏览器答案(我认为)。这个网站可以帮助你errorhelp.com/search/details/69648/ssl_error_rx_record_too_long 【参考方案1】:

您需要拥有完全正常工作的 https 虚拟主机。请在此处粘贴您的虚拟主机中的内容。

<VirtualHost IP:443>
    ServerName www.domain.com
    SSLEngine on
    SSLCertificateFile /etc/ssl/certs/www.domain.com.crt
    SSLCertificateKeyFile /etc/ssl/private/www.domain.key

    ReWriteEngine On
    RewriteRule (.*) http://www.domain.com%REQUEST_URI
</VirtualHost>

如果你有相同的用于 http 和 https 的虚拟主机,事情会变得一团糟。顺便说一句,您的证书必须具有 www.domain.com 的 CNAME,或者如果您有通配符 *.domain.com。还有一件事,你在这里不需要任何RewriteCond,因为你重写了每个 https 请求。

【讨论】:

以上是关于https 到 http 重定向的主要内容,如果未能解决你的问题,请参考以下文章

NGINX 将 http 重定向到 https,将非 www 重定向到 ww

apache将http重定向到https,将www重定向到非www

HTTP重定向

使用 Nginx 将 HTTP 重定向到 HTTPS

如何通过 web.config 将 http 重定向到 https 并将 www 重定向到非 www?

将单页 http 重定向到 https