Question

Comment avez-vous redirection HTTPS en HTTP?.C'est, à l'opposé de ce que (presque) tout le monde apprend.

J'ai un serveur en HTTPS pour lequel j'ai payé une certification SSL et un miroir pour lesquelles je n'ai pas et conserver seulement pour les situations d'urgence afin de ne pas le mérite d'obtenir une certification pour.

Sur mon client ordinateurs de bureau, j'ai QUELQUES raccourcis qui pointent vers http://production_server et https://production_server (les deux fonctionnent).Cependant, je sais que si mon serveur de production va vers le bas, puis transfert DNS de coups de pied dans les clients qui ont "https" sur leur raccourci sera à regarder https://mirror_server (qui ne fonctionne pas) et un big fat Internet Explorer 7 écran rouge de uneasyness pour mon entreprise.

Malheureusement, je ne peux pas il suffit de passer ce tour au niveau du client.Ces utilisateurs sont très rien à l'informatique:et sont très susceptibles de paniquer de voir HTTPS "l'insécurité" erreurs (en particulier la façon dont Firefox 3 et Internet Explorer 7 poignée de nos jours:L'ARRÊT COMPLET, genre de heureusement, mais ne m'aide ici LOL).

C'est très facile pour trouver Apache solutions pour http->https redirection, mais pour la vie de moi je ne peux pas faire l'inverse.

Des idées?

Était-ce utile?

La solution

Cela n'a pas été testé, mais je pense que cela devrait fonctionner à l'aide de mod_rewrite

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

Autres conseils

Gardez à l'esprit que le moteur de Réécriture seulement des coups de pied une fois la requête HTTP a été reçu, ce qui signifie que vous auriez encore besoin d'un certificat pour le client de configurer la connexion pour envoyer la demande plus de!

Toutefois, si la sauvegarde de la machine semble avoir le même nom d'hôte (dans la mesure où le client est concerné), il n'y a aucune raison que vous ne pouvez pas utiliser le même certificat que la principale machine de production.

Basé sur ejunker réponse, c'est la solution de travail pour moi, et non pas sur un seul serveur, mais sur un cloud de l'environnement

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

Pour ceux qui sont à l'aide d'un .conf fichier.

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

Si aucune des solutions ci-dessus le travail pour vous (pas pour moi), voici ce qui a fonctionné sur mon serveur:

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

tous les ci-dessus ne fonctionne pas lorsque je l'ai utilisé cloudflare, celui-ci a fonctionné pour moi:

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

et celui-ci fonctionne sans proxies dans le chemin:

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

Il est préférable d'éviter d'utiliser mod_rewrite quand vous le pouvez.

Dans votre cas, je voudrais remplacer le Réécrire avec ceci:

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

L' <If> la directive est disponible uniquement dans Apache 2.4+ que par ce blog ici.

Aucune réponse fonctionne pour moi sur le site Wordpress, mais suite à des travaux ( il est similaire à d'autres réponses, mais ils ont un peu de changement)

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

cela fonctionne pour moi.

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

assurez-vous d'écouter à la fois les ports 80 et 443.

Pour autant que je suis conscient d'une simple actualisation des métafichiers fonctionne également sans provoquer des erreurs:

<meta http-equiv="refresh" content="0;URL='http://www.yourdomain.com/path'">
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top