htaccess 301 редирект на https

Тема в разделе "Mod Rewrite / htaccess / ЧПУ", создана пользователем HaKyPeHHbIu Nike, 5 янв 2015.

  1. HaKyPeHHbIu Nike

    HaKyPeHHbIu Nike Постоялец

    Регистр.:
    17 мар 2010
    Сообщения:
    117
    Симпатии:
    23
    Как правильно сделать 301 редирект на https?
    при следующем содержимом файла .htaccess
    PHP:
    Options +FollowSymlinks 
    RewriteEngine on 
    RewriteBase 
    /

    RewriteCond %{SERVER_PORT} !^443

    RewriteCond %{HTTPS}  off 
    RewriteRule 
    ^(.*)$ https://www.example.com/$1 [R=301,L]
    в браузере получаю сообщение о бесконечном перенаправлении.
     
  2. Zacker2

    Zacker2

    Регистр.:
    19 фев 2013
    Сообщения:
    208
    Симпатии:
    53
    Думаю так
    Код:
    Options +FollowSymlinks
    RewriteEngine off
    RewriteBase /
    RewriteCond %{SERVER_PORT} !^443$
    RewriteCond %{HTTPS} on
    RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]
    
    Если нет, то еще это добавь:
    Код:
    RewriteCond %{REQUEST_URI} ^www\.(.*)$ [NC]
     
    Последнее редактирование: 5 янв 2015
  3. UJy

    UJy

    Регистр.:
    23 авг 2011
    Сообщения:
    322
    Симпатии:
    117
    Возможны 2 варианта:
    1) ошибка из-за 443 порта, его нужно убрать. В остальном правило правильное и переадрессаций создавать не должно
    2) Сервер изначально настроен так, что б с https переадресовывать на http. В таком случае нужно будет копаться в настройках сервера.

    Если первый вариант, то данный код будет работать:
    PHP:
    Options +FollowSymlinks
    RewriteEngine on
    RewriteBase 
    /

    RewriteCond %{HTTPS}  off
    RewriteRule 
    (.*) https://www.example.com/$1 [R=301,L]
    Если, конечно, это всё содержимое файла .htaccess и там не содержится других деректив создающих дополнительные переадресации...