Как настроить редиректы в htaccess без цепочек

    При настройке серверных перенаправлений часто возникает проблема цепочек редиректов, когда браузер выполняет несколько последовательных переходов. Это замедляет загрузку страниц и ухудшает SEO. Разберём, как объединить правила для домена, протокола и дублей слэшей в один редирект.

    Почему образуются цепочки редиректов

    Цепочка возникает, когда правила выполняются поочерёдно. Например, сначала срабатывает редирект с www на без www, затем с http на https, и так далее. Чтобы избежать этого, нужно все условия объединить в одном RewriteRule.

    Готовые правила htaccess без цепочек

    Скопируйте следующий код в файл .htaccess в корне сайта. Он обрабатывает все три задачи за один проход:

    RewriteEngine On
    
    # Единый редирект: www -> без www, http -> https, удаление лишних слэшей
    RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC,OR]
    RewriteCond %{HTTPS} !=on [OR]
    RewriteCond %{THE_REQUEST} // [OR]
    RewriteCond %{REQUEST_URI} index\.(php|html|htm)$
    RewriteRule ^(.*)$ https://%1/$1 [R=301,L]

    Пояснение к правилу

    • RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC,OR] - проверяет, есть ли www в домене.
    • RewriteCond %{HTTPS} !=on [OR] - проверяет, что соединение не HTTPS.
    • RewriteCond %{THE_REQUEST} // [OR] - обнаруживает двойные слэши в URL.
    • RewriteCond %{REQUEST_URI} index\.(php|html|htm)$ - отлавливает index.php в конце.
    • RewriteRule ^(.*)$ https://%1/$1 [R=301,L] - выполняет редирект на версию без www, с HTTPS и чистым URL.

    Дополнительная настройка для разных доменов

    Если у вас сложная конфигурация с несколькими доменами, используйте отдельные блоки, но располагайте их в правильном порядке. Сначала обрабатывайте www, затем протокол, потом слэши. Главное - избегать повторных условий.

    Проверка результата

    После добавления правил проверьте работу через сервисы вроде Redirect Checker. Введите несколько вариантов URL: с www, с http, с двойным слэшем. Убедитесь, что все они ведут сразу на конечный адрес.

    Часто задаваемые вопросы