Как вы перенаправляете HTTPS в HTTP?

Как перенаправить HTTPS в HTTP? , То есть противоположность тому, что (кажется) каждый учит.

У меня есть сервер на HTTPS, за который я заплатил сертификацию SSL, и зеркало, которое у меня нет, и храню его только для экстренных случаев, поэтому оно не заслуживает получения сертификации.

На рабочих столах моего клиента есть НЕКОТОРЫЕ ярлыки, которые указывают на http://production_server и https://production_server (оба работают). Тем не менее, я знаю, что если мой рабочий сервер выйдет из строя, то переадресация DNS активируется, и те клиенты, у которых есть ярлык «https», будут смотреть на https://mirror_server (что не работает) и большой толстый красный экран Internet Explorer 7 непросто для моей компании.

К сожалению, я не могу просто переключить это на уровне клиента. Эти пользователи очень неграмотны в компьютерах: и очень вероятно, что они увидят ошибки «небезопасности» HTTPS (особенно то, как Firefox 3 и Internet Explorer 7 в настоящее время обрабатывают это: полная остановка, к счастью, но не помогает мне здесь, LOL).

Это , это очень легко найти Apache решения для http-> gt; перенаправление https, но для жизни я не могу сделать наоборот.

Идеи?

вопрос задан 12.08.2008
mauriciopastrana
2503 репутация

9 ответов


  • 0 рейтинг

    Лучше избегать использования mod_rewrite, когда это возможно. В вашем случае я бы заменил переписать на это:

        
                Redirect permanent / http://production_server/
        
    

    Директива доступна только в Apache 2. 4+ согласно этому блогу здесь

    ответ дан sys0dm1n, с репутацией 394, 22.08.2016
  • 0 рейтинг

    Для тех, кто использует файл .conf.

    
        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
    
    
    
    ответ дан Rick, с репутацией 5289, 1.12.2015
  • 0 рейтинг

    все вышеперечисленное не работало, когда я использовал cloudflare, этот работал для меня:

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

    и этот, безусловно, работает без прокси в пути:

    RewriteCond %{HTTPS} on
    RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
    
    ответ дан mikulabc, с репутацией 86, 8.03.2017
  • 0 рейтинг

    Если ни одно из перечисленных выше решений не работает для вас (они не для меня), вот что сработало на моем сервере:

    RewriteCond %{HTTPS} =on
    RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [L,R=301]
    
    ответ дан Stuart, с репутацией 14329, 21.02.2013
  • 0 рейтинг

    Насколько я знаю, простое обновление метаданных также работает без ошибок:

            
    ответ дан RobinUS2, с репутацией 764, 3.09.2012
  • 0 рейтинг

    Исходя из ответа ejunker, это решение работает для меня не на одном сервере, а на облаке , среда ,

    Options +FollowSymLinks
    RewriteEngine On
    RewriteCond %{ENV:HTTPS} on
    RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
    
    ответ дан antoniom, с репутацией 1983, 24.01.2013
  • 0 рейтинг

    Это не было проверено, но я думаю, что это должно работать с использованием mod_rewrite

    RewriteEngine On
    RewriteCond %{HTTPS} on
    RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI}
    
    ответ дан ejunker, с репутацией 7008, 12.08.2008
  • 0 рейтинг

    Ни один из ответов не работает для меня на веб-сайте Wordpress, но следующие работы (это похоже на другие ответы, но есть небольшие изменения)

    RewriteEngine On
    RewriteCond %{HTTPS} on
    RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
    
    ответ дан zhilevan, с репутацией 3060, 12.11.2017
  • 0 рейтинг

    Имейте в виду, что механизм перезаписи включается только после получения HTTP-запроса - это означает, что вам все равно понадобится сертификат, чтобы клиент мог установить соединение для отправки запроса!

    Однако если машина резервного копирования будет иметь такое же имя хоста (что касается клиента), то не должно быть причин, по которым вы не можете использовать тот же сертификат, что и основной рабочий компьютер.

    ответ дан Kieron, с репутацией 9584, 12.08.2008