Привет, мир!

Личный блог Бориса Черепанова


когда нечего делать, а творческая душа требует реализации и хочется что-то сделать или написать, то я пишу сюда или делаю что-то на этом сайте. Кому интересна web-разработка, wordpress и то что рядом с этим, то заходите на мой сайт и читайте всякое...

Перейти в блог

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

Обновления

29.04.2019 исправлена ошибка работы с русскими адресами.

Как не правильно делать перенаправление

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

<HTML>
  <HEAD>
    <META HTTP-EQUIV="REFRESH" CONTENT="1; URL=https://temchenko.com/km">
  </HEAD>
  <BODY>
  </BODY>
</HTML>

Вэбмастер этого сайта сделал перенаправление прямо в html файле.

<script>
window.location = 'https://joker-prognoz.ru';
</script>

Видимо этот вэбмастер больше любит javascript

Принудительное перенаправление сервером

Иногда панель хостинга предоставляет возможность «по галочке» создать перенаправление. Однако в ряде ситуаций это не то, что нам нужно. И это может привести нас, например, к невозможности восстановить выгрузку из 1С после переезда на https или перенести ссылочный вес на новый домен из-за отсутствия в ответе сервера статуса 301.

Пример кода для перехода на https

Ниже приведены примеры кода для файла .htaccess. Данный файл располагается в корневом каталоге вашего сайта.

Пример 1

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

Пример 2

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$ 
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>

Пример 3 (с переходом с www)

// Совместно с перенаправлением с www
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
RewriteCond %{HTTP:X-Forwarded-Proto} !=https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>

SSL сертификат

Нужно помнить, что обязательным условием работы https на сервере является наличие SLL. Сертификат можно получить как платно так и бесплатно.

Бесплатный SSL

Пожалуй самой популярной платформой бесплатных SSL является Let’s Encrypt. Вы можете самостоятельно настроить его на своём сервере. Однако не каждый хостинг позволяет это сделать и принуждает к покупке платного или к оплате услуги статического ip адреса.

В этом случае я рекомендую вам выбирать хостиг, который позволяет вам установить бесплатный сертификат. Я рекомендую вам хостиг beget. Он не только даст вам установить бесплатный сертификат, но и автоматически установить его и обновит, когда срок его действия закончиться. Переходите!

Тестирование файла .htaccess

Для тестирования файла .htaccess вы можете воспользоваться сервисом htaccess.madewithlove.be. Это вам может понадобиться в случаях если вы сделали несколько изменений в файле и вам нужно проверить результат работы без заливки нового кода на сервер.

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

Дополнительные ссылки

Статья «Набор классных редиректов»
Переходим на HTTPS на Nginx: шпаргалка
Настройка HTTPS-серверов (Nginx)

Услуги

Если вы не можете самостоятельно установить SSL или настроить перенаправление HTTPS то вы можете обратиться ко мне в ВК (ссылка) или в Telegram (@cherrguw).

Цена

Цена от 500 рублей. Будет зависеть от затраченного времени на решение задачи


Последние записи