Редирект (redirect 301) на https, настройка

Сейчас большинство сайтов, независимо от содержимого переходят на https. Но кроме сертификата нужно настроить редирект (redirect 301), чтоб весь сайт, или отдельные страницы открывались по безопасному протоколу. Причины перехода самые разные:

  • чтоб лучше ранжироваться в Гугле;
  • для увеличения доверия от посетителей;
  • чтоб Гугл не понизил сайт на незащищенные страницы с данными.

Чтобы настроить переадресацию, нужно добавить в файл .htaccess (если его нет, то создайте)

для ОС Linux  следующие строки:

 1. Redirect всех страниц с http:// на https:// в том числе с http://www.

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Я сам воспользовался эти редиректом, потому что все современные сайты, особенно на WordPress  выдают циклическую переадресацию ( error too many redirects) на остальные способы.
 Для тех, кто ищет редирект старого формата:
Пример 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]
Пример для  Агава
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]

 

Для ОС Windows свои правила

В каталоге сайта и измените или создайте web.config  со следующими строками:

1. Redirect для домена и всех поддоменов
<?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>
 2. Redirect только для основного домена:
<?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>
  1. 5
  2. 4
  3. 3
  4. 2
  5. 1
(3 голоса, в среднем: 5 из 5)

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

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