Редирект (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>
Редирект (redirect 301) на https, налаштування
Оцініть статтю

Маєте власну думку? Поділіться з усіма!

Всі коменти проходять модерацію *