Vra

Hoe doen jy lei HTTPS HTTP ?. Dit wil sê die teenoorgestelde van wat (skynbaar) almal leer.

Ek het 'n bediener op HTTPS waarvoor ek betaal 'n SSL sertifisering vir en 'n spieël waarvoor ek nie en hou al vir net vir noodgevalle sodat dit nie meriete om 'n sertifisering vir.

Op desktops my kliënt se ek het 'n paar kortpaaie wat verwys na http://production_server en https://production_server (albei werk). Maar ek weet dat as my produksie bediener gaan af, DNS dan stuur skop in en daardie kliënte wat het "https" op hul kortpad sal staar na https://mirror_server (wat nie werk nie) en 'n groot vet Internet Explorer 7 rooi skerm van uneasyness vir my maatskappy.

Ongelukkig kan ek nie net skakel dit om na die kliënt vlak. Hierdie gebruikers is baie rekenaar ongeletterd en is baie geneig om uit te freak uit sien HTTPS "onsekerheid" foute (veral die manier Firefox 3 en Internet Explorer 7 handvatsel dit deesdae: punt, soort van gelukkig, maar my nie hier help LOL).

Dit is baie maklik om uit te vind Apache oplossings vir http-> https verwysing , maar vir die lewe van my Ek kan die teenoorgestelde doen nie

.

Idees?

Was dit nuttig?

Oplossing

Dit is nog nie getoets, maar ek dink dit behoort te werk met behulp van mod_rewrite

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

Ander wenke

Hou in gedagte dat die Herskryf enjin skop net een keer die HTTP-versoek ontvang is - wat beteken dat jy sal nog 'n sertifikaat nodig, ten einde vir die kliënt om die opstel van die verbinding met die versoek stuur oor

Maar as die Friends masjien sal verskyn met dieselfde masjien naam het (so ver as die kliënt is bekommerd), dan moet daar geen rede waarom jy kan dieselfde sertifikaat as die belangrikste produksie masjien nie gebruik word.

Op grond van antwoord ejunker se, dit is die oplossing werk vir my, nie op 'n enkele bediener, maar op 'n wolk omgewing

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

Vir diegene wat met behulp van 'n .conf lêer.

<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>

As een van die opsies oplossings vir jou werk (hulle het nie vir my) hier is wat gewerk het op my bediener:

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

al die bogenoemde nie werk nie wanneer ek gebruik cloudflare, hierdie een het vir my gesê:

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

en hierdie een werk beslis sonder gevolmagtigdes in die pad:

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

Dit is beter om te verhoed dat die gebruik van mod_rewrite wanneer jy kan.

In jou geval sou ek die Herskryf vervang met die volgende:

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

Die <If> richtlijn is hier slegs beskikbaar in Apache 2.4+ soos per die blog .

Nie een van die antwoord vir my werk op Wordpress webwerf, maar volgende werke (dit is soortgelyk aan ander antwoorde, maar het 'n bietjie verandering)

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

dit werk vir my.

<VirtualHost *:443>
    ServerName www.example.com
    # ... SSL configuration goes here
    Redirect "https://www.example.com/" "http://www.example.com/"
</VirtualHost>

<VirtualHost *:80>
    ServerName www.example.com
    # ... 
</VirtualHost>

seker wees om beide hawens 80 en 443 te luister.

Sover ek weet van 'n eenvoudige meta verfris werk ook sonder dat foute:

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