За последние 24 часа нас посетил 21841 программист и 1024 робота. Сейчас ищут 674 программиста ...

Редирект 301 с http на https

Тема в разделе "PHP для новичков", создана пользователем Zasadaa, 4 сен 2020.

  1. Zasadaa

    Zasadaa Активный пользователь

    С нами с:
    16 дек 2010
    Сообщения:
    106
    Симпатии:
    1
    Друзья, всем привет! Помогите разобраться с редиректом. Есть сайт в .htaccess я сделал сначала редирект с www на без www, а немного позже сайт переехал с http на https и я в RewriteRule изменил с http на https.

    Код (Text):
    1. #переадрисация с www.pochemuchka.su на pochemuchka.su
    2. RewriteCond %{HTTP_HOST} ^www\.pochemuchka\.su$ [NC]
    3. RewriteRule ^(.*)$ https://pochemuchka.su/$1 [R=301,L]
    И после всего этого я ожидал, что когда в адресной строке я наберу pochemuchka.su я попаду на сайт с https, но это не так. И сейчас я понимаю, что сделал что-то не так. Помогите настроить правильно!
     
  2. Sail

    Sail Старожил

    С нами с:
    1 ноя 2016
    Сообщения:
    1.591
    Симпатии:
    360
    Надо добавить условие, что уже не на https.
    Однако всё равно нужны две директивы: с http->https и с www -> без www
    Некоторые cms делают так:
    Код (Text):
    1. RewriteCond %{HTTPS} off
    2. RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    3.  
    4. RewriteCond %{HTTP_HOST} .
    5. RewriteCond %{HTTP_HOST} ^www.(.*)$ [NC]
    6. RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
    Подробнее
     
  3. Zasadaa

    Zasadaa Активный пользователь

    С нами с:
    16 дек 2010
    Сообщения:
    106
    Симпатии:
    1
    Сделал. выдает ошибку.

    Страница недоступна
    Сайт pochemuchka.su выполнил переадресацию слишком много раз.
    ERR_TOO_MANY_REDIRECTS
     
  4. Sail

    Sail Старожил

    С нами с:
    1 ноя 2016
    Сообщения:
    1.591
    Симпатии:
    360
    Бывает, когда к домену не привязан ssl. То есть, фактически отключен https
    Пробовали без всяких редиректов просто открыть адрес с указанием полного URL?
    https://example.com
     
  5. Zasadaa

    Zasadaa Активный пользователь

    С нами с:
    16 дек 2010
    Сообщения:
    106
    Симпатии:
    1
    Пробовал. Работает. Набираю https://pochemuchka.su и все ОК. Только я думал что если я наберу http://pochemuchka.su меня должно редиректом перенаправить на https, но этого не происходит почему-то....
     
  6. Punker1

    Punker1 Новичок

    С нами с:
    27 авг 2020
    Сообщения:
    9
    Симпатии:
    0
    Код (Text):
    1. RewriteEngine on
    2.  
    3. RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
    4. RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
    5.  
    6. RewriteCond %{HTTPS} off
    7. RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [NC,R=301,L]
     
  7. Zasadaa

    Zasadaa Активный пользователь

    С нами с:
    16 дек 2010
    Сообщения:
    106
    Симпатии:
    1
    Добавил этот код и сайт стал не доступен.
    Добавил этот код и сайт стал недоступен. Пишет что сайт выполнил переадресацию слишком много раз.
     
  8. javakhir

    javakhir Новичок

    С нами с:
    5 сен 2020
    Сообщения:
    9
    Симпатии:
    0
    на то и есть редайрект 306

    с http на https
     
  9. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.792
    Симпатии:
    650
    По идее можно ограничиться одним правилом с двумя условиями через OR.
    --- Добавлено ---
    Как-то так:
    Код (Text):
    1. RewriteCond %{HTTPS} off [OR]
    2. RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
    3. RewriteRule ^(.*) https://%1/$1 [R=301,L]
    Если в %1 не всегда будет подхватываться значение, можно прописать в подстановке домен явно (или, может, поменять условия местами). И условие на основе %{HTTPS} не всегда работает, я бы по порту делал.
     
  10. javakhir

    javakhir Новичок

    С нами с:
    5 сен 2020
    Сообщения:
    9
    Симпатии:
    0
    RewriteCond %{HTTP_HOST} ^old.com [NC,OR]
    RewriteCond %{HTTP_HOST} ^www.old.com [NC]
    RewriteRule ^(.*)$ https://new.com/$1 [L,R=301,NC]

    вот что правильно работает! так же редайректит со старой папки на новую папку, то есть:
    old.com/city/moscow
    на
    new.com/city/moscow