Jak przekierowujesz HTTPS na HTTP? Oznacza to, że jest przeciwieństwem tego, czego (pozornie) wszyscy uczą.
Mam serwer na HTTPS, za który zapłaciłem certyfikat SSL i serwer lustrzany, za który nie mam i trzymam się w pobliżu tylko w sytuacjach awaryjnych, więc nie zasługuje na uzyskanie certyfikatu.
Na komputerach mojego klienta mam NIEKTÓRE skróty, które wskazują na http://production_server
i https://production_server
(oba działają). Wiem jednak, że jeśli mój serwer produkcyjny ulegnie awarii, włącza się przekierowanie DNS i klienci, którzy mają „https” w swoim skrócie, będą się gapić https://mirror_server
(co nie działa) i duży, gruby czerwony ekran Internet Explorera 7 z niepokojem dla mojej firmy.
Niestety nie mogę po prostu zmienić tego na poziomie klienta. Ci użytkownicy są niepiśmienni na komputerach: i jest bardzo prawdopodobne, że wystraszy się, widząc błędy związane z "brakiem bezpieczeństwa" HTTPS (szczególnie sposób, w jaki Firefox 3 i Internet Explorer 7 radzą sobie z tym obecnie: FULL STOP, na szczęście, ale nie pomaga mi tutaj LOL).
Jest to bardzo łatwe do znalezienia rozwiązania Apache na protokole HTTP> https przekierowanie , ale dla życia mnie nie mogę zrobić odwrotnie.
Pomysły?
Odpowiedzi:
Nie zostało to przetestowane, ale myślę, że powinno to działać przy użyciu mod_rewrite
źródło
Pamiętaj, że silnik Rewrite uruchamia się dopiero po odebraniu żądania HTTP - co oznacza, że nadal będziesz potrzebować certyfikatu, aby klient mógł skonfigurować połączenie i wysłać żądanie!
Jeśli jednak okaże się, że maszyna zapasowa ma tę samą nazwę hosta (jeśli chodzi o klienta), nie powinno być powodu, dla którego nie można używać tego samego certyfikatu, co główna maszyna produkcyjna.
źródło
Opierając się na odpowiedzi ejunkera, jest to rozwiązanie działające dla mnie nie na pojedynczym serwerze, ale w środowisku chmurowym
źródło
Dla tych, którzy używają
.conf
pliku.źródło
Jeśli żadne z powyższych rozwiązań nie działa dla Ciebie (nie dla mnie), oto co zadziałało na moim serwerze:
źródło
L,
(co oznacza „Ostatnia reguła”). Jeśli korzystasz z wordpress lub innego CMS,L
flaga może uniemożliwić prawidłowe kierowanie żądania strony. Zamiast tego użyj:RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [R=301]
wszystkie powyższe nie działały, gdy korzystałem z Cloudflare, ten działał dla mnie:
a ten zdecydowanie działa bez proxy na drodze:
źródło
Lepiej unikać korzystania z mod_rewrite, kiedy tylko możesz.
W twoim przypadku zastąpiłbym Rewrite tym:
<If>
Dyrektywa jest dostępny tylko w wersji 2.4+, jak na tym blogu tutaj .źródło
/usr/sbin/httpd -v
to działa dla mnie.
pamiętaj, aby słuchać obu portów 80 i 443.
źródło
Żadna z odpowiedzi nie działa dla mnie na stronie Wordpress, ale poniższe działa (jest podobna do innych odpowiedzi, ale ma małą zmianę)
źródło
O ile wiem, proste odświeżanie meta działa również bez powodowania błędów:
źródło