当前位置:  开发笔记 > 后端 > 正文

如何将HTTPS重定向到HTTP?

如何解决《如何将HTTPS重定向到HTTP?》经验,为你挑选了5个好方法。

如何将HTTPS重定向到HTTP?也就是说,与每个人所教导的(看似)相反.

我在HTTPS上有一台服务器,我为此支付了SSL认证和镜像,我没有并且只是为了紧急情况而保留,所以它不值得获得认证.

在我的客户端桌面上,我有一些快捷方式指向http://production_serverhttps://production_server(两者都有效).但是,我知道如果我的生产服务器出现故障,那么DNS转发就会启动,那些在其快捷方式上有"https"的客户端将会盯着https://mirror_server(这不起作用)和一个胖胖的Internet Explorer 7红屏不安为我的公司.

不幸的是,我不能只在客户端级别切换它.这些用户非常不懂计算机:并且非常有可能因为看到HTTPS"不安全"错误而感到恐惧(特别是现在Firefox 3和Internet Explorer 7处理它的方式:完全停止,有点谢天谢地,但没有帮助我这里大声笑).

这是很容易 找到 的Apache的解决方案为基于HTTP> HTTPS重定向,但对我的生活,我不能反其道而行之.

想法?



1> ejunker..:

这还没有经过测试,但我认为这应该可以使用mod_rewrite

RewriteEngine On
RewriteCond %{HTTPS} on
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI}


如下面的Kieron所指出的,如果镜像服务器没有有效的证书,这将不起作用.由于证书无效,您仍会看到一个大的红色警告.一旦你开始使用https,你基本上坚持使用它.准备好在你的余生中付出代价.如果您停止付款,则为https链接添加书签的用户将无法通过.

2> Kieron..:

请记住,一旦收到HTTP请求,Rewrite引擎才会启动 - 这意味着您仍然需要一个证书,以便客户端设置连接以发送请求!

但是,如果备份计算机看起来具有相同的主机名(就客户端而言),那么就没有理由不能使用与主生产计算机相同的证书.



3> antoniom..:

根据ejunker的回答,这是适用于我的解决方案,不是在单个服务器上,而是在环境中

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{ENV:HTTPS} on
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]



4> Rick..:

对于那些使用.conf文件的人.


    ServerName domain.com
    RewriteEngine On
    RewriteCond %{HTTPS} on
    RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI}

    SSLEngine on
    SSLCertificateFile /etc/apache2/ssl/domain.crt
    SSLCertificateKeyFile /etc/apache2/ssl/domain.key
    SSLCACertificateFile /etc/apache2/ssl/domain.crt




5> rg88..:

如果以上解决方案都不适合您(他们不适合我)这里是我的服务器上的工作:

RewriteCond %{HTTPS} =on
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [L,R=301]


很多时候,你不会想要`L,`(这意味着"最后一条规则").如果您使用的是wordpress或其他CMS,则"L"标志可能会阻止页面请求被正确路由.而是使用:`RewriteRule ^(.*)$ http://%{HTTP_HOST}/$ 1 [R = 301]`
推荐阅读
yzh148448
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有