• Всем привет!
    На сервере настроили SSL, при наборе адреса https://www.site.ru — все работает корректно
    Решил добавить редирект с http на https через .haccess
    По адресу https://toster.ru/q/174797 нашел несколько вариантов, перепробовал все — ни один не работает.
    Во всех случаях редирект происходит, но сайт открывается жалобой на слишком большое кол-во редиректов — http://prntscr.com/evwhvh

    Начал крутить все способы более подробно.
    Один способ после некоторых манипуляций заработал, но отказали ЧПУ ссылки.
    Содержимое htaccess

    
    RewriteCond %{ENV:HTTPS} !on
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    # BEGIN WordPress
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    
    </IfModule>
    
    # END WordPress
    

    Редирект на https начинает нормально работать если убрать
    RewriteEngine On
    Но при этом отказывают ссылки.
    Я в директивах htaccess понимаю слабо, скорее всего ошибка плевая, ламерская, но понять в чем она не могу…

    Заранее благодарен за помощь!

Просмотр 15 ответов — с 16 по 30 (всего 45)
  • @flector, на скриншоте видно что урлы с https — http://prntscr.com/evxd4r

    это ничего не значит. сайт может работать на http (так в настройках указано), через код в .htaccess идет перенаправление на https — а wordpress обратно перенаправляет на http — вот и циклическая переадресация. было у меня такое.

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

    @flector, Тем не менее, не сработало сохранение в пермалинках, хотя там уже указаны урлы с https.

    • Ответ изменён 7 лет, 10 месяцев назад пользователем noindex.

    в общих настройках нажали сохранить?

    и проверьте тут https://bertal.ru/
    что там с перенаправлением.

    @flector, сохранить нажимам и в пермалинках и на главной. Иначе https в пермалинках не повился бы.
    С заголовками всё как писал ранее, куча 301 редиректов на https
    http://prntscr.com/evztqk

    И я на всякий случай напомню что зацикленость пропадает если я приведу htaccess к такому виду:

    RewriteCond %{ENV:HTTPS} !on
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    
    # BEGIN WordPress
    <IfModule mod_rewrite.c>
    
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    </IfModule>
    # END WordPress
    • Ответ изменён 7 лет, 10 месяцев назад пользователем noindex.
    • Ответ изменён 7 лет, 10 месяцев назад пользователем noindex.

    И с Вашим кодом зацикленности нет

    RewriteCond %{HTTPS} off
    RewriteCond %{HTTP:X-Forwarded-Proto} !https
    RewriteCond %{HTTP:HTTPS} !=on [NC]
    RewriteCond %{REQUEST_URI} !robots.txt
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    
    # BEGIN WordPress
    <IfModule mod_rewrite.c>
    
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    </IfModule>
    # END WordPress

    Одно плохо, ссылки перестают работать.

    перестают потому что надо обновить пермалинки.

    @flector, ну вообще в таком формате htaccess зайти в раздел пермалинков не получилось, получил опять цикл.
    После плясок с бубном (отключение Вашего кода, заход в пермалинки, включение Вашего кода, сохранение) перестает работать и без
    RewriteEngine On
    Появляется старый добрый цикл.

    что показывают заголовки при запросе урла с https?

    @flector, уже показывал

    С заголовками всё как писал ранее, куча 301 редиректов на https
    http://prntscr.com/evztqk

    Кучу 301 редиректов

    сдаюсь. спросите у вашего хостера, что там не так.

    @flector, понимаете в чем соль, сайт по https прекрасно работает, все ссылки, всё ок.
    Проблема появляется когда пытаюсь включить редирект с http на https…
    Я уверен что хостер в такой ситуации пошлет лесом ибо на его уровне всё ок, а это всего лишь разборки программера с WP…
    Если я к примеру снесу WP и уберу из htaccess его код

    # BEGIN WordPress
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    </IfModule>
    # END WordPress

    переадресация прекрасно заработает…

    это, как раз, может быть проблема хостера.
    у timeweb, например, https не заработает, если первой строчкой не добавить:
    SetEnvIf X-HTTPS 1 HTTPS=1

    @flector, но у нас то HTTPS работает и редирект работает, если снести WP.
    Какая проблема может быть у хостера в этом случае?
    Если бы апач не понимал что он уже на HTTPS, редирект и без WP не работал бы.

    у timeweb как раз постоянная переадресация была из-за отсутствия SetEnvIf X-HTTPS 1 HTTPS=1 и при включенной переадресации в .htaccess. поэтому вопрос к ним.

    я не специалист по серверным настройкам.

Просмотр 15 ответов — с 16 по 30 (всего 45)
  • Тема «Проблема с редиректом на HTTPS» закрыта для новых ответов.