如何将HTTPSredirect到HTTP?

如何将HTTPSredirect到HTTP? 也就是说,每个人都教(什么)的相反。

我有一个HTTPS服务器,我已经为此支付了一个SSL证书,并且我没有为这个镜像服务,只是为了应付紧急情况,所以它不值得获得authentication。

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

不幸的是,我不能在客户端切换。 这些用户是非常计算机文盲:很可能会看到HTTPS“不安全”的错误(尤其是火狐3和Internet Explorer 7现在处理它的方式:全停止,谢天谢地,但不帮我在这里大声笑)。

为http-> httpsredirect 寻找 Apache解决scheme 非常容易 ,但是对于我来说,我不能做相反的事情。

想法?

这没有经过testing,但我认为这应该使用mod_rewrite工作

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

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

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

基于ejunker的回答,这是为我工作的解决scheme,不是在单个服务器上,而是在环境中

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

对于那些使用.conf文件。

 <VirtualHost *:443> 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 </VirtualHost> 

如果上面的解决scheme都不适合你(他们不适合我),这是什么在我的服务器上工作:

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

以上所有都不起作用,当我使用cloudflare,这一个为我工作:

 RewriteCond %{HTTP:X-Forwarded-Proto} =https RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 

而这一个绝对没有代理人的方式:

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

如果可以的话,最好使用mod_rewrite。 在你的情况下,我会用这个replace重写:

  <If "%{HTTPS} == 'on'" > Redirect permanent / http://production_server/ </If> 

在这里, <If>指令仅在Apache 2.4+中可用

没有一个答案适用于我在WordPress的网站上,但下面的作品(这是类似的其他答案,但有一点变化)

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

据我所知的一个简单的元刷新也工作,而不会造成错误:

 <meta http-equiv="refresh" content="0;URL='http://www.yourdomain.com/path'">