Содержание

Редирект с http на https для Linux | REG.RU

Редирект на Linux-хостинге

Чтобы ваш сайт работал по безопасному протоколу HTTPS, после установки SSL-сертификата нужно настроить перенаправление (редирект) с HTTP на HTTPS в панели управления.

Для этого ваш сайт должен быть рамещен на хостинге REG.RU.

Обращаем внимание, что редирект стоит настраивать только в том случае, если в панели управления уже установлен SSL-сертификат: Как установить SSL-сертификат на хостинг?

Как настроить редирект?

  • Если у вас на хостинге панель управления ISPmanager 5, переадресацию можно настроить в несколько кликов средствами панели управления.

  • Если у вас на хостинге панель управления — cPanel или Parallels Plesk, редирект настраивается только через конфигурационный файл .htaccess

Поделитесь мнением

Привет! Мы — команда справки и хотим сделать статьи лучше!

Если статья помогла, нажмите

Да. Хотите рассказать, что вам понравилось, пишите нам на [email protected]. Если не помогла, жмите Нет и расскажите, как мы можем улучшить статью.

Спасибо! Приятного чтения.

Помогла ли вам статья?

Настройка редиректа в ISPmanager 5

Откройте панель управления ISPmanager5 и перейдите в раздел «WWW-домены». Выберите домен, который должен открываться по HTTPS и нажмите Изменить. Поставьте галочку напротив пункта Перенаправлять HTTP-запросы в HTTPS и нажмите ОК, чтобы сохранить изменения.

Готово. Теперь ваш сайт будет работать по протоколу HTTPS.

  1. 1Откройте вашу панель управления хостингом.
  2. 2

    Откройте файл .htaccess. Он расположен в корневой папке сайта. Если файл .htaccess отсутствует, то причина может быть в том, что в cPanel не отображаются скрытые файлы. Чтобы отобразить скрытые файлы, воспользуйтесь инструкцией.

    как открыть файл .htacсess в cPanel

    В разделе «Домены» выберите пункт Дополнительные домены. Нажмите по строке, где указана корневая папка домена. Затем нажмите правой кнопкой по файлу .htaccess и выберите в появившемся списке пункт Edit, а затем повторно нажмите Edit:

    как открыть файл .htacсess в Plesk

    Под нужным доменом нажмите по строке, где указана корневая папка домена. Откроется корневая папка вашего сайта. Найдите в списке файл .htaccess и кликните по нему левой кнопкой мыши:

  3. 3

    Добавьте в конце файла .htaccess одно из правил, которое подходит для вашего случая:

    редирект всех страниц с HTTP на HTTPS

    Редирект всех страниц с http:// на https://, в том числе и с

    http://www на https://

    Вариант 1

    RewriteEngine On
    
    RewriteCond %{SERVER_PORT} !^443$
    
    RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

    или воспользуйтесь вторым вариантом (если первый вариант не поможет):

    Вариант 2

    RewriteEngine On
    
    RewriteCond %{HTTPS} =off 
    
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L]

    если все варианты не помогли и возникает циклическая переадресация, добавьте:

    Вариант 3

    RewriteEngine On
    
    RewriteCond %{HTTPS} off
    
    RewriteCond %{HTTP:X-Forwarded-Proto} !https
    
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

    Вариант 4

    RewriteEngine On 
    
    RewriteCond %{ENV:HTTPS} !on 
    
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

    Редирект на HTTPS только выбранной страницы

    В примерах ниже редирект настраивается для страницы login.php.

    Вариант 1

    RewriteEngine On
    
    RewriteCond %{HTTPS} =off
    
    RewriteCond %{REQUEST_URI} =/login.php
    
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L]

    или

    Вариант 2

    RewriteEngine On
    
    RewriteCond %{SERVER_PORT} !^443$
    
    RewriteCond %{REQUEST_URI} =/login.php
    
    RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R,L]

    Редирект на HTTPS всех страниц, кроме одной

    В примере ниже редирект настраивается для страницы test.php.

    RewriteEngine On
    
    RewriteCond %{HTTPS} =off
    
    RewriteCond %{REQUEST_URI} !^/test.php
    
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L]
  4. 4Сохраните изменения.

Готово. Теперь ваш сайт будет работать по протоколу HTTPS.

Обратите внимание! Если ни один из предложенных вариантов кода не подошёл, обратитесь к разработчикам сайта или на тематические форумы. В некоторых случаях корректная настройка редиректа возможна только средствами CMS.

www.reg.ru

Настраиваем редирект с HTTP на HTTPS

Приветствую вас на сайте Impuls-Web!

Сегодня мы рассмотрим последний этап перевода сайта на SSL-сертификат, в котором нам нужно настроить редирект с http на https, или, другими словами, перенаправление с нашего прежнего адреса, начинающегося с http://, на новый адрес по протоколу HTTPS.

Навигация по статье:

В предыдущих статьях я рассматривала процесс получения у установки SSL сертификата. Если вы их не читали – вот ссылки:
Нужен ли SSL-сертификат для сайта?
Как получить бесплатно SSL-сертификат для сайта?
Как получить SSL сертификат?
Как установить SSL-сертификат на хостинг?

Переадресация на https через htaccess

Если ваш сайт уже проиндексирован то перед настройкой редиректа вам нужно произвести склейку зеркал, а потом уже настраивать редирект. Это поможет минимизировать потери трафика и позиций . О том как это сделать написано тут.

Для того, что бы настроить редирект с http на https, вам нужно, при помощи программы Notepad++, в корне вашего сайта открыть файл .htaccess, и далее, в самом начале этого файла, прописать один из нескольких вариантов перенаправления.

Как пользоваться Notepad++ и настроить для него FTP-подключение я рассказывала в одной из прошлых статей, с которой вы можете ознакомиться по этой ссылке:

Редактирование файлов сайта в Notepad++

Все дело в том, что настройки хостинга могут быть разные. Поэтому какого-то универсального синтаксиса для написание перенаправления нет и нужно будет пробовать разные варианты, что бы найти тот, который сработает на вашем хостинге.

Если вы не хотите экспериментировать с различными способами перенаправления, то лучше всего будет обратиться в техподдержку вашего хостинга и уточнить у них, как лучше всего настроить редирект с HTTP на HTTPS именно для вашего хостинга.

Варианты написания серверного редиректа для HTTPS

Мне удалось найти семь основных вариантов, которые используют для настройки редиректа для HTTPS протокола:

Вариант 1

RewriteCond %{HTTPS} =off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L]

RewriteCond %{HTTPS} =off

RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L]

Вариант 2

RewriteCond %{SERVER_PORT} !^443$ RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R,L]

RewriteCond %{SERVER_PORT} !^443$

RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R,L]

Вариант 3

RewriteCond %{ENV:HTTPS} !on RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

RewriteCond %{ENV:HTTPS} !on

RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Вариант 4

RewriteCond %{HTTP:X-HTTPS} !1 RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

RewriteCond %{HTTP:X-HTTPS} !1

RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

Вариант 5

RewriteCond %{HTTP:CF-Visitor} ‘»scheme»:»http»‘ RewriteRule ^(.*)$ https://www.site.ru/$1 [L]

RewriteCond %{HTTP:CF-Visitor} ‘»scheme»:»http»‘

RewriteRule ^(.*)$ https://www.site.ru/$1 [L]

Вариант 6

RewriteCond %{HTTP:X-Forwarded-Protocol} !=https RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

RewriteCond %{HTTP:X-Forwarded-Protocol} !=https

RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

Вариант 7

RewriteCond %{HTTP:X-Forwarded-Proto} !https RewriteCond %{HTTPS} off RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]

RewriteCond %{HTTP:X-Forwarded-Proto} !https

RewriteCond %{HTTPS} off

RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]

Вариант 8

RewriteEngine On RewriteCond %{HTTPS} off RewriteCond %{HTTP:X-Forwarded-Proto} !https RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

RewriteEngine On

RewriteCond %{HTTPS} off

RewriteCond %{HTTP:X-Forwarded-Proto} !https

RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

После вставки одного из этих вариантов в файл .htaccess, сохраняете изменения.

Проверка редиректа

Затем, для того что бы проверить работает он или нет, переходим в браузер и в адресной строке вводим адрес нашего сайта с протоколом HTTP. Если перенаправление сработает, то у вас должна будет открыться страница вашего сайта с протоколом HTTPS.

Так же, вы можете воспользоваться одним из онлайн-сервисов, которые позволяют просмотреть правильность выполнения редиректа. Например, Redirect Checker. Для выполнения проверки вам нужно:

  1. 1.Перейти на страницу онлайн-сервиса по этой ссылке
  2. 2.В поле для ввода указать адрес, с которого должно осуществляться перенаправление в формате http://имя-сайта.ру .
  3. 3.А затем нажать на кнопку «Analyse».

В результате сервис вам выдаст отчет о правильности работы перенаправления. В моем случае редирект работает не правильно:

Перенаправление вроде бы как происходит, но это происходит несколько раз, и почему то происходит не 301 редирект, а 302. Насколько я поняла, это называется циклический редирект, и такого быть не должно. Поэтому мне нужно пробовать другие варианты.

Так же, вы можете проверить правильность выполнения редиректа для конкретной поисковой системы. Для этого, перед нажатием на кнопку «Analyse», нужно выбрать из выпадающего списка название нужного поискового робота:

После того, как вы добавите свой сайт с протоколом HTTPS в поисковые системы, укажите основное зеркало, дождетесь переиндексации и правильно настроите 301-редирект, ваш переезд на протокол HTTPS можно будет считать завершенным. Для крупного сайта такой переезд может занять от нескольких недель, до нескольких месяцев. Все будет зависеть от того, как долго яндекс будет производить склейку зеркал.

Так же, вы можете назначить 301 редирект сразу после получения и установки с SSL-сертификата, но в этом случае вы рискуете тем, что многие страницы вашего сайта могут на время выпасть из поисковой выдачи.

Я надеюсь, что данная статья поможет вам правильно настроить редирект для HTTPS –протокола и осуществить переход на SSL-сертификат с наименьшими потерями. Если данная статья вам понравилась, делайте репост в социальные сети и подписывайтесь на мою рассылку. Желаю вам успешного переезда и до встречи в следующих статьях.

С уважением Юлия Гусарь

impuls-web.ru

Редирект с http на https. Все варианты перенаправления через .htaccess.

Уже ни для кого не секрет, что Гугл и Яндекс начинают выдавать «бонусы» сайтам, у которых установлен сертификат безопасности SSL, и которые начали работать через протокол https. И чтобы корректно настроить редирект с http на https, нужно прописать в .htaccess пару строчек.

Да, строчек действительно две. Но есть определенные нюансы, зависящие от настроек того или иного сервера, заставляющие нас, порой долго, искать в интернете комбинацию этих заветных строк. Ниже я приведу исчерпывающие правила для постраничного редиректа всего сайта с протокола http на https.

Вариант 1


RewriteCond %{HTTPS} =off 
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L]

Вариант 2


RewriteCond %{SERVER_PORT} !^443$
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R,L]

Вариант 3


RewriteCond %{ENV:HTTPS} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Вариант 4


RewriteCond %{HTTP:X-HTTPS} !1
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

Вариант 5


RewriteCond %{HTTP:CF-Visitor} '"scheme":"http"'
RewriteRule ^(.*)$ https://www.domain.com/$1 [L] #не забудьте заменить на ваш домен

Вариант 6


RewriteCond %{HTTP:X-Forwarded-Protocol} !=https
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

Вариант 7. На одну строчку больше =)


RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]

Каждый из приведенных выше вариантов нужно прописывать сразу после включения mod_rewrite, а именно — после директивы RewriteEngine On.


50781 просмотр

Февраль 29, 2016

alittlebit.ru

Редирект с http на https через htaccess

Новый 2017й год — это будет массовый год перехода больших и маленьких сайтов, блогов и порталов с обычного старого и всем известного протокола HTTP на его более новую и безопасную версию HTTS. Буква S в аббревиатуре обозначает «Secure», то есть безопасный. Это достигается за счёт использования протоколом шифрования, которое используется в протоколах SSL или TLS, поверх которых будут передаваться данные. Такую политику продвигает компания Google. В след за ней, скорее всего, этим займутся и все остальные Интернет-медиагиганты.
Всвязи с этими событиями у веб-мастеров начинают возникать различные вопросы, связанные с переходом от одного протокола к другому. В этой статье я расскажу про то, как настроить редирект с http на https через htaccess на веб-сервере Apache. 

Что это такое и зачем оно нужно?

В переводе с английского языка слово «redirect» обозначает перенаправление. То есть, смысл этой процедуры заключается в том, чтобы трафик, который идёт на обычную версию сайта перенаправить на новую, защищённую версию. Тут дело в том, что для поисковиков сайт http://example.ru и https://example.ru — это два разных ресурса. Поэтому, после перехода на защищённый протокол, в Интернете появляется полная копия исходного сайта. И вот чтобы избежать проблем с поиском и работой сайта, крайне необходимо настроить перенаправление, то есть редирект сайта с http на https.

Настройка перенаправления в htaccess

У самого популярного веб-сервера Apache для большего удобства работы и настройки (проще говоря, чтобы пользователь не лазил лишний раз в глобальный конфиг httpd.conf) используется специальный файл дополнительной конфигурации .htaccess, который лежит в каталоге сайта. Вот как раз с его помощью можно настроить перенаправление http на https.

Итак, с помощью любого подручного текстового редактора — vim, nano, mcedit и т.п. — открываем файл и прописываем следующее:

RewriteEngine On

RewriteCond %{HTTPS} !=on

RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]

Если вдруг не заработает — пробуйте второй вариант настройки редиректа через htaccess:

RewriteEngine On

RewriteCond %{SERVER_PORT} !^443$

RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

Во втором случае используется правило Redirect 301, когда при попытке доступа к той или иной странице на старой версии http сервер будет отвечать, что она переехала на новый адрес с https.

Закрываем файл и сохраняем его. В принципе, конфиг должен будет подцепиться автоматически, но можно и перезапустить веб-сервер для верности.

set-os.ru

Редирект с http на https для Windows | REG.RU

Чтобы ваш сайт всегда открывался по безопасному https:// протоколу, мы рекомендуем настроить переадресацию c http:// на https://. В этом случае даже если посетитель вашего сайта наберёт в строке браузера путь http://вашсайт, браузер его автоматически перенаправит на безопасный протокол https://вашсайт.

Для настройки переадресации необходимо добавить в файл web.config правила, которые вы найдёте ниже.

Файл web.config должен быть расположен в каталоге сайта, его можно узнать по инструкции. Если файла не существует, просто создайте его.

Перейдите в каталог сайта и добавьте в файл web.config следующие строки:

Редирект c http:// на https:// для основного домена и всех поддоменов

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="Redirect to https" stopProcessing="true">
                    <match url="(.*)" />
                    <conditions>
                        <add input="{HTTPS}" pattern="off" ignoreCase="true" />
                    </conditions>
                    <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Permanent" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

Редирект c http:// на https:// для основного домена без поддоменов

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="Redirect to https" stopProcessing="true">
                    <match url="(.*)" />
                    <conditions>
                        <add input="{HTTPS}" pattern="off" ignoreCase="true" />
                        <add input="{HTTP_HOST}" pattern="^domain\.ru" />
                    </conditions>
                    <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Permanent" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

Читайте о том, как добавить редирект с http на https для Linux-хостинга в данной статье.

www.reg.ru

Редирект с http на https, .htaccess, циклическая переадресация

Если вы решили настроить https протокол в 4 версии панели ISP Manager то с большой вероятностью вы столкнетесь с проблемой циклической пере адресации: если клиент хочет, чтобы его сайт открывался исключительно по 443 порту (https), он не может этого добиться без помощи технической поддержки хостинг провайдера, а техническая поддержка хостинг провайдера в свою очередь не может этого добиться, не прибегая к ручному изменению конфига nginx.

Всё это происходит из-за того, что ISP Manager 4 изначально создаёт только одну секцию server для домена, поэтому, такой код в .htaccess:


RewriteCond %{SERVER_PORT} ^80$ [OR]
RewriteCond %{HTTP} =on
RewriteRule ^(.*)$ https://domain.com/$1 [R=301,L]</pre>

Приводит к циклической пере-адресации.

В ISP Manager 4  server в конфигурационном файле nginx для домена создается одна секция для 443 и 80 порта. Поэтому редирект “зацикливается”.
По заявлению разработчиков ISP Manager в пятой версии панели эта проблема решена.

Рассмотрим варианты пере-адресации http версии сайта на https.

Редирект можно осуществить с помощью файла .htaccess который находится в корне Вашего сайта.
Если по какой-то причине такого файла там нет, то просто создайте его самостоятельно.

Ниже приводятся несколько вариантов записей, которые нужно добавить в .htaccess:

1.


RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]</pre>

 

2. или:


RewriteEngine On
RewriteCond %{HTTPS} =off 
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L]

3. Если при использовании вариантов выше получаем ошибку “циклическая пере-адресация” , то пробуем:


RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Тажке можно выполнить пере-адресацию одного, конкретного файла. Например forhttps.php:


RewriteEngine On
RewriteCond %{HTTPS} =off
RewriteCond %{REQUEST_URI} =/forhttps.php
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L]

Или наоборот, нужно чтоб весь сайт, кроме одного файла(forhttp.php), перенаправляло на https:


RewriteEngine On
RewriteCond %{HTTPS} =off
RewriteCond %{REQUEST_URI} !^/forhttp.php
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L]

Далее рассмотрим варианты пере-адресации с помощью веб-сервера nginx.

В  nginx  указываем следующую запись:


server_name <em>site_name.com</em>;
server_name www.<em>site_name.com</em>;
if ( $scheme = "http" ) {
   rewrite ^/(.*)$ https://$host/$1 permanent;
 }

Где site_name.com и www.site_name.com – варианты Вашего домена которые необходимо перенаправлять на защищенную HTTPS версию

 

afirewall.ru

Apache переадресация сайта c www на без www и с HTTP на HTTPS протокол

2.4K

Все более широкое внедрение протокола HTTPS поставило несколько новых задач перед разработчиками и системными администраторами. Таких, как необходимость редиректа с http на https.

Ниже я покажу, как перенаправить сайт с www на без-www (или наоборот) и с http на https, используя конфигурацию сервера Apache. Чтобы стало понятнее, конфигурация будет перенаправлять следующие имена хостов:

http://example.com
http://www.example.com
https://example.com

на

Также я покажу небольшое изменение для перенаправления без-WWW на версию с WWW, если вы предпочитаете WWW.

Перед тем, как сделать редирект с https на http, добавьте следующее правило перенаправления в файл конфигурации Apache (если у вас есть доступ к нему), либо в файл .htaccess, расположенный в корневом каталоге вашего сайта:

RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www. [NC]
RewriteCond %{HTTP_HOST} ^(?:www.)?(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [L,NE,R=301]

Если вместо example.com вы хотите использовать по умолчанию URL www.example.com, то просто измените третью и пятую строки:

RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www. [NC]
RewriteCond %{HTTP_HOST} ^(?:www.)?(.+)$ [NC]
RewriteRule ^ https://www.%1%{REQUEST_URI} [L,NE,R=301]

Попробуем разобраться, как работает эта конфигурация htaccess редиректа http на https. Это поможет внести необходимые изменения:

Первая строка позволяет Apache запустить механизм преобразования http-ссылок, необходимый для выполнения перенаправления:

RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www. [NC]

Эти две строки — условия перенаправления, они используются для определения того, должен ли запрос быть перенаправлен. Если любое из этих двух условий возвратит true, то Apache выполнит перенаправление, поскольку условия соединяются с помощью [OR].

Первое условие определяет, использует ли запрос URL не-HTTPS. Второе условие определяет, использует ли запрос URL www. Заметьте, я использовал www.а не www., потому что образец является регулярным выражением и точка здесь используется для экранирования. Следовательно, ее нужно оставить:

RewriteCond %{HTTP_HOST} ^(?:www.)?(.+)$ [NC]

Четвертая строка — она соответствует имени хоста входящего запроса, и разделяет его на www часть (если таковая имеется), и остальную часть имени хоста. Мы будем ссылаться на нее позже с помощью %1 в RewriteRule.

Если вы знаете имя хоста заранее, то можно улучшить правило редиректа с http на https, встроив URL и пропустив это условие (пример ниже):

RewriteRule ^ https://www.%1%{REQUEST_URI} [L,NE,R=301]

RewriteRule – центральный элемент перенаправления. С помощью этой строки мы предписываем Apache перенаправить любой запрос на новый URL, который состоит из:

  • https: // WWW;
  • %1: Ссылка на без-WWW часть хоста;
  • %{REQUEST_URL}: URL-запрос, без имени хоста.

Все эти маркеры соединены друг с другом, и представляют собой конечный URL перенаправления. В конце мы добавляем три флага:

  • NE — чтобы не выйти из специальных символов;
  • R=301 — использовать HTTP статус 301 редиректа;
  • L — прекратить обработку других правил, и немедленно перенаправить.

В моём примере htaccess редиректа http на https используется дополнительная строка RewriteCond, чтобы извлечь имя хоста, а не подставлять имя в правило. Если чувствуете, что для вас это — потеря производительности, то можете встроить хост непосредственно в правило:

RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www. [NC]
RewriteRule ^ https://example.com%{REQUEST_URI} [L,NE,R=301]

В данной статье представлена простая конфигурация перенаправления WWW и не-HTTPS запросов для домена сайта. Таким образом можно избежать проблем с дублированием контента в поисковых системах.

Данная публикация представляет собой перевод статьи «Apache redirect www to non-www and HTTP to HTTPS» , подготовленной дружной командой проекта Интернет-технологии.ру

www.internet-technologies.ru

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *