Próbuję przekierować https://www.example.com do http://www.example.com. Próbowałem następujący kod w pliku .htaccessHttps do http przekierowania za pomocą htaccess
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]
Ten kod skutecznie przekierowuje https://example.com do http://www.example.com. Jednak po wpisaniu numeru https://www.example.com pojawia się błąd "brak strony internetowej" w przeglądarce.
Próbowałem również następujące 2 kody bez powodzenia
Próba 1
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^/(.*):NOSSL$ http://www.example.com/$1 [R=301,L]
Próba 2
RewriteEngine On
RewriteCond %{HTTPS} on
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI}
Oba powyższe próby zawiodły. Jakieś sugestie?
Będzie dobrze używać 'R = 302' jeżeli nie chcesz, aby _permanent_. Wpadło mi to w kłopoty, gdy mój SSL wygasł i chciałem tymczasowo wrócić do "http", zanim przejdę przez bolesne procedury odnawiania. – ProfNandaa
Bolesne odnowienie? Powinny to być albo przerzucanie plików certyfikatów, albo wykonywanie prostych skryptów ... Problem z 302 polega na tym, że klienci muszą za każdym razem podążać za nim, więc zwiększasz liczbę żądań dla klienta i serwera. – arkascha
@arkascha Chciałem tylko zrozumieć, że RewriteCond będzie działał jako instrukcja wypowiedzenia? Chodzi mi o to, że tylko tam, gdzie znajdzie https, uruchomi kolejną regułę przepisywania. Pytam, ponieważ Google automatycznie wziął w swoim indeksie kilka adresów URL w postaci protokołu HTTPS bez konieczności łączenia ich z dowolnego miejsca. Dlatego też, aby wykluczyć jakiekolwiek błędy, używamy powyższego kodu do 302 wszystkich adresów https –