Comment redirigez-vous HTTPS vers HTTP?. Autrement dit, le contraire de ce que tout le monde enseigne (apparemment).
J'ai un serveur sur HTTPS pour lequel j'ai payé une certification SSL et un miroir pour lequel je n'ai pas et que je garde juste pour les urgences, donc cela ne mérite pas d'obtenir une certification.
Sur les bureaux de mon client, 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 tombe en panne, le transfert DNS entre en jeu et les clients qui ont "https" sur leur raccourci regarderont https://mirror_server
(ce qui ne fonctionne pas) et un gros écran rouge de malaise d'Internet Explorer 7 pour mon entreprise.
Malheureusement, je ne peux pas simplement changer cela au niveau du client. Ces utilisateurs sont très analphabètes en informatique: et sont très susceptibles de paniquer en voyant des erreurs "d'insécurité" HTTPS (en particulier la façon dont Firefox 3 et Internet Explorer 7 le gèrent de nos jours: FULL STOP, heureusement, mais ne m'aide pas ici LOL).
Il est très facile de trouver des solutions Apache pour la redirection http-> https , mais pour la vie de moi, je ne peux pas faire le contraire.
Des idées?
Réponses:
Cela n'a pas été testé mais je pense que cela devrait fonctionner avec mod_rewrite
la source
Gardez à l'esprit que le moteur de réécriture ne démarre qu'une fois la requête HTTP reçue - ce qui signifie que vous auriez toujours besoin d'un certificat, pour que le client configure la connexion pour envoyer la requête!
Cependant, si la machine de sauvegarde semble avoir le même nom d'hôte (en ce qui concerne le client), il ne devrait y avoir aucune raison pour laquelle vous ne pouvez pas utiliser le même certificat que la machine de production principale.
la source
Sur la base de la réponse d'ejunker, c'est la solution qui fonctionne pour moi, pas sur un seul serveur mais sur un environnement cloud
la source
Pour ceux qui utilisent un
.conf
fichier.la source
Si aucune des solutions ci-dessus ne fonctionne pour vous (ce n'est pas le cas pour moi), voici ce qui a fonctionné sur mon serveur:
la source
L,
(qui signifie "Dernière règle"). Si vous utilisez wordpress ou un autre CMS, l'L
indicateur peut empêcher la demande de page d'être correctement acheminée. À la place, utilisez:RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [R=301]
tout ce qui précède n'a pas fonctionné lorsque j'ai utilisé cloudflare, celui-ci a fonctionné pour moi:
et celui-ci fonctionne définitivement sans proxy de la manière:
la source
Il vaut mieux éviter d'utiliser mod_rewrite lorsque vous le pouvez.
Dans votre cas, je remplacerais la réécriture par ceci:
La
<If>
directive n'est disponible que dans Apache 2.4+ selon ce blog ici .la source
/usr/sbin/httpd -v
cela fonctionne pour moi.
assurez-vous d'écouter les deux ports 80 et 443.
la source
Aucune des réponses ne fonctionne pour moi sur le site Web Wordpress mais les travaux suivants (c'est similaire à d'autres réponses mais ont un petit changement)
la source
Pour autant que je sache, une simple méta-actualisation fonctionne également sans provoquer d'erreurs:
la source