• 502
  • 0
  • Уровень сложности исполнения: это делается простым копированием и нажиманием кнопки

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

Итак открываем файл .htaccess который в коне вашего сайта и добавляем правила которые указаны ниже, ну и исходя из требований вашего хостинга

Редирект всех страниц с 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} =on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L]

вариант для хостинга Агава
Код:
RewriteEngine On
RewriteCond %{ENV:HTTPS} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

если все варианты не помогли и возникает циклическая переадресация:
вариант 3
Код:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
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]

Ещё на php xерез index.php
Код:
if(empty($_SERVER['HTTPS']) || $_SERVER['HTTPS'] == "off"){
$redirect = 'https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
header('HTTP/1.1 301 Moved Permanently');
header('Location: ' . $redirect);
exit();
}

Итак если у вас хостинг Windows то перейдите в каталог сайта и добавьте в файл web.config следующие строки:

Редирект для основного домена и всех поддоменов
Код:
<?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>

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

Код:
<?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>

Ну вот вроде и все, ни чего сложного, также смотрите документацию для вашего хостинга, задавайте вопросы в техподдержку хостинга, да и просто по гуглите .

Можешь почитать и вот эту статейку "Выводим название категории через TWIG но не через news.table.tpl"

mistakes

Это тоже интересно

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Ваше мнение

Как вам наш дизайн сайта?
Результаты

----