webinar
@webinar
Учим yii: https://youtu.be/-WRMlGHLgRg

Почему редирект внезапно стал циклическим?

Жил был обычный такой .htaccess
код .htaccess
RewriteEngine on

RedirectMatch 404 /\.git
RedirectMatch 404 /composer\.
RedirectMatch 404 /.bowerrc

RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
RewriteCond %{SERVER_PORT} ^80$
RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule . index.php

И отлично редиректил он с http и www на https без www. Но злые хостеры nic.ru без объявления войны, что-то поменяли на сервере. И он начал приводить к ошибке ERR_TOO_MANY_REDIRECTS
Любые попытки править .htaccess приводят к вышеописанной ошибке. Я закоментил редиректы и написал адский велосипед yii2 (php framework), но он мне не нравится:
код велосипеда (yii2)
public function beforeAction($action)
    {
        if(!Yii::$app->request->getIsSecureConnection()){
            $redirect = 'https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
            return $this->redirect($redirect,301);
        }
        return parent::beforeAction($action);
    }

Если есть более изящные решения - очень будет спасибо.
Разбираться и переписываться с хостерами желание нет (достали). У меня есть vds (не nic.ru естественно), как время будет перееду обязательно, но может быть кто-то уже сталкивался. Это произошло пару недель назад, так что может быть кто-то уже им писал знает рецепт.
Поделитесь адскими муками переписки плиз.
  • Вопрос задан
  • 904 просмотра
Пригласить эксперта
Ответы на вопрос 1
shambler81
@shambler81 Куратор тега htaccess
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
#RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
RewriteCond %{HTTPS} on
RewriteRule ^.*$ http://%{SERVER_NAME}%{REQUEST_URI}

Попробуй так.
Но сдается мне что они сделали следующее
В виртуал хост добавили редирект основнго зеркала.
Открой его и посмотри. по ssh подключись и посмотри в апаче настройки. Редактировать не даст но почитать дадут.
А вот там уже может быть редирект например на зеркало и тогда действительно будет цикл.
Опять же ты привел сразу несколько строк, что при отключение любой из них цикл сохраняется ?
а какой редирект конкретно приводит к циклу ?
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы