evoltrue
@evoltrue
Программирую

Обратная переадресация с HTTPS на HTTP?

Использую: Nginx (frontend) + (общаются через http) apache (backend) + php
Нужно было подключить HTTPS. Подключил, сделал, затем redirect https to http:
if ( $scheme = "http" ) {
rewrite ^/(.*)$ https://$host/$1 permanent;
}
Только об этом я пожалел (из-за незнаний SEO), нужно было сделать два соединения HTTPS и HTTP оказалось что google умеет индексировать только HTTP а HTTPS игнорировать но я вместо этого спецом заставил его индексировать HTTPS, но по сути мне это не нужно (нужно только реализовать https для тех кому это надо), в идеале нужно чтобы люди захидили через HTTP (и ПС индесировал HTTP) значит обратно надо убрать переадресацию.
Что я сделал:
Закоментировал #if ( $scheme = "http" ) {

ИТОГ: если очистить кеш браузера можно зайти на http без проблем, но если зайти через https хоть один раз то браузер больше не хочет общаться через http и вечно кидает на https, других redirect нет.

Скажите это спецификация браузеров?
И как сделать переадресацию с HTTPS на HTTP, так как ПС проиндексировали HTTPS, или ваше решение данной проблемы?

Я пытался:
1. Сделать редирект if ( $scheme = "https" ) - обратный, получил - "циклическую переадресацию"
2. htaccess - делал, не канает
3. Делал redirect через PHP - получил - "циклическую переадресацию"

UPD

//
Нужно просто сделать HTTPS to HTTP но не знаю как ибо через
if ( $scheme = "https" ) {
    rewrite ^/(.*)$   http://$host/$1 permanent;
}

Получается циклическая переадресация
  • Вопрос задан
  • 7049 просмотров
Пригласить эксперта
Ответы на вопрос 4
Кто вам сказал, что гугл умеет индексировать только http?????

Вот вам 2 запроса на проверку:
Запрос 1
Запрос 2
Ответ написан
Scorpi
@Scorpi
301 Moved Permanently
Этот код ответа сделан как раз для того чтобы перенаправлять всегда, поэтому один раз получив его, браузеры кешируют ответ.
stackoverflow.com/questions/8136315/how-to-avoid-b...
getluky.net/2010/12/14/301-redirects-cannot-be-undon
Ответ написан
Комментировать
opium
@opium
Просто люблю качественно работать
нет это не спецификация браузера, у меня все ходит на хттп и хттпс и никаких редиректов не появляется.
Ответ написан
Комментировать
evoltrue
@evoltrue Автор вопроса
Программирую
Вот не могу выявить где у меня этот редирект
Вот конфиги
server {
    listen  *.*.*.*:80;
    listen  *.*.*.*:443 ssl;
    server_name site.net www.site.net;
    error_log  /var/log/httpd/domains/site.net.error.log error;
	
    ssl         on;
    ssl_certificate     /home/admin/web/site.net/cert/site.chained.crt;
    ssl_certificate_key /home/admin/web/site.net/cert/site.key;
    
    add_header Strict-Transport-Security 'max-age=604800';
    ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
    #if ( $scheme = "https" ) {
    #    rewrite ^/(.*)$   http://$host/$1 permanent;
    #}

    location / {
        proxy_pass      http://*.*.*.*:8080;
        location ~* ^.+\.(jpg|jpeg|gif|png|ico|svg|css|zip|tgz|gz|rar|bz2|exe|pdf|doc|xls|ppt|txt|odt|ods|odp|odf|tar|bmp|rtf|js|mp3|avi|mpeg|flv|html|htm)$ {
            root           /home/admin/web/site.net/public_html;
            access_log     /var/log/httpd/domains/site.net.log combined;
            access_log     /var/log/httpd/domains/site.net.bytes bytes;
            expires        max;
            try_files      $uri @fallback;
        }
    }

    location /error/ {
        alias   /home/admin/web/site.net/document_errors/;
    }

    location @fallback {
        proxy_pass      http://*.*.*.*:8080;
    }

    location ~ /\.ht    {return 404;}
    location ~ /\.svn/  {return 404;}
    location ~ /\.git/  {return 404;}
    location ~ /\.hg/   {return 404;}
    location ~ /\.bzr/  {return 404;}

    include /home/admin/conf/web/nginx.site.net.conf*;
}

// htaccess
AddDefaultCharset utf-8

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /

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

    RewriteCond $1 !^(index\.php)

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    
    RewriteRule ^(.*)$ index.php?/$1 [L]

</IfModule>


Нужно просто сделать HTTPS to HTTP но не знаю как ибо через
if ( $scheme = "https" ) {
    rewrite ^/(.*)$   http://$host/$1 permanent;
}

Получается циклическая переадресация
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы