Come si reindirizza HTTPS a HTTP?

Come si reindirizza HTTPS a HTTP ?. Cioè, il contrario di ciò che (apparentemente) tutti insegnano.

Ho un server su HTTPS per il quale ho pagato una certificazione SSL e un mirror per il quale non ho e mi tengo in giro solo per le emergenze, quindi non merita la certificazione.

Sul desktop del mio cliente ho alcune scorciatoie che puntano a http://production_server e https://production_server (entrambi funzionano). Tuttavia, so che se il mio server di produzione si arresta, l’inoltro DNS viene triggersto e quei client che hanno “https” sul loro collegamento vedranno https://mirror_server (che non funziona) e un grosso Internet Explorer. 7 schermo rosso di disagio per la mia azienda.

Sfortunatamente, non posso cambiarlo a livello di cliente. Questi utenti sono molto analfabeti informatici: e sono molto probabilmente impazienti di vedere gli errori di “insicurezza” dell’HTTPS (specialmente il modo in cui Firefox 3 e Internet Explorer 7 lo gestiscono oggigiorno: FULL STOP, un po ‘per fortuna, ma non mi aiuta qui LOL).

È molto facile trovare soluzioni Apache per il reindirizzamento http-> https , ma per la vita di me non posso fare il contrario.

Idee?

Questo non è stato testato ma penso che questo dovrebbe funzionare usando mod_rewrite

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

Tieni presente che il motore Riscrivi si triggers solo dopo aver ricevuto la richiesta HTTP, il che significa che avresti ancora bisogno di un certificato, in modo che il client possa configurare la connessione per inviare la richiesta!

Tuttavia, se la macchina di backup sembra avere lo stesso hostname (per quanto riguarda il client), non ci dovrebbe essere alcun motivo per cui non si possa usare lo stesso certificato della macchina di produzione principale.

In base alla risposta di ejunker, questa è la soluzione che funziona per me, non su un singolo server ma su un ambiente cloud

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

Per quelli che stanno usando un file .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  

Se nessuna delle soluzioni di cui sopra funziona per te (non per me) ecco cosa ha funzionato sul mio server:

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

tutto quanto sopra non ha funzionato quando ho usato cloudflare, questo ha funzionato per me:

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

e questo sicuramente funziona senza proxy nel modo in cui:

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

È meglio ovoid utilizzare mod_rewrite quando puoi. Nel tuo caso sostituirò il Riscritto con questo:

   Redirect permanent / http://production_server/  

La direttiva è disponibile solo in Apache 2.4+ come da questo blog qui

Nessuna delle risposte funziona per me sul sito WordPress ma in seguito funziona (è simile ad altre risposte ma ha un piccolo cambiamento)

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

Per quanto ne so un semplice meta refresh funziona anche senza causare errori: