Настраиваем редирект с http на https

Содержание:

301 Редирект в htaccess с http + www на https без www

301 редирект в создании сайтов и их же продвижении играет самую важную скрипку, ведь при криво настроенном перенаправлении ваш сайт с легкостью вылетит из поиска, раздублируются страницы по самое немогу, а также привнесет раздрай в вашем творении. И чтобы этого не произошло надо настраивать 301 Редирект в htaccess правильно! (с Домена на нужный Домен, со Страницы на правильную Страницу). 

А пока немного теории: 301 редирект это по сути простая 301-ая ошибка (301 Permament Redirect), которая возвращается сервером при запросе конкретного адреса вашего сайта, расшифровывается так: «Сайт на постоянной основе перенесен на такой-то адрес». Все пользователи, боты и другие инопланетные обитатели зашедшие на ваш сайт, будут перенаправляться по новому месту прописки, и для поисковых систем Яндекс, Гугл и других (произойдет склейка домена), весь вес сайта будет перенесен на новый адрес.

Однако санкции наложенные на старый сайт перенесены не будут, иначе все конкуренты давно бы наклепали редиректов со своих ГовноСайтов на сайты конкурентов.

Итак: Правильная настройка 301 редиректа в .htaccess

Базовая настройка редиректа с WWW.site.ru на site.ru  до появления защищенного протокола выглядела так:

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.*) 
RewriteRule ^(.*)$ http://%1/$1 

Обратный редирект с site.ru на WWW.site.ru так:

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.(.*) 
RewriteRule ^(.*)$ http://www.%1/$1 

Теперь же когда повсеместно стали использоваться Https (SSL) защищенные протоколы. Стали делать переадресацию с с http на https

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTPS} =off 
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} 

Но тут возник вопрос. Как же правильно объединить эти 2 301 редиректа в один, получить компактный код и чтобы не слишком заморачиваться. На просторах интернета я нашел такой вот код и он меня вполне устраивает.

Сразу и перенаправление с www на без + редирект с http на https:

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTPS} off 
RewriteCond %{HTTP_HOST} ^www\.
RewriteRule (.*) https://site.ru/$1 


Ниже новый вариант который 100% работает (правка от 09.02.2018)

RewriteEngine on
 
RewriteCond %{HTTP_HOST} ^www\.(.*)$ 
RewriteRule ^(.*)$ https://%1/$1 
 
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

Примечание!1) site.ru — нужно заменить на ваш адрес сайта2) Эти две строчки: 

Options +FollowSymLinks
RewriteEngine On

Сразу прописаны в файле .htaccess в CMS Joomla 1.5 / 2.5 / 3.x / итд. Однако если вы их не нашли в этом файле то, чтобы код работал, их необходимо прописать.

Также чтобы не забыть — Простые редиректы!

Redirect 301 / http://site.com
Redirect 301 /katalog/tovar1.html http://drugoysite.ru/tovar2.html

Страница на страницу:

Redirect 301 /katalog/tovar-old.html /katalog/tovar-new.html

Я делаю сайты на Joomla 3, но эти редиректы подходят большинству сайтов на php с .htaccess

Проверка корректности настроек 301 редиректа

Самый простой способ проверки переадресации – ручное тестирование. Для этого необходимо вставить в адресную строку браузера url сайта или страницы, с которой настроено перенаправление. Если при открытии будет доступен ресурс, на который настроен редирект, то переадресация выполняется правильно.

Для автоматической проверки можно воспользоваться специальными сервисами:

  • Redirect Checker, bertal.ru или Header Checker Tool для тестирования отдельных страниц;

  • программой Screaming Frog Seo Spider, способной просканировать весь сайт.

Существует ряд ошибок, которые следует избегать при настройке редирект 301:

  • использование перенаправлений между страницами сайта без изменения их url в ссылках;

  • установка временной переадресации вместо постоянной;

  • неправильный выбор типа редиректа;

  • перенаправление файла robots.txt;

  • непонимание разницы между rel=canonical и кодом 301;

  • редирект на нерелевантный контент;

  • переадресация, которая не приводит к 200-й странице.

Стоит отметить проблему создания цепочки ссылок, которая может привести к появлению циклического редиректа — ошибки с кодом «ERR_TOO_MANY_REDIRECTS». Наиболее распространенные причины возникновения такого бага – неправильная настройка в процессе создания переадресации, вирусная атака, слишком длинная цепочка редиректов. Не рекомендуется настраивать редирект, содержащий более пяти адресов. Оптимальной является прямая переадресация со старого на новый url.

Возможности и для чего нужен

В данном файле сайтостроители могут:

  • Настраивать директивы простого перенаправления (редиректы). Это позволит после смены домена отправить посетителя со страницы предыдущего сайта на новый проект.
  • Переадресовывать с URL, где есть www, на домен без www. Или же на https после того, как установите ssl сертификат.
  • Описывать ошибки. В их числе и ошибка 404 с заменой на необходимую страницу.
  • Кэширование файлов. Делается с целью ускорения работы веб-ресурса.
  • Создавать ЧПУ. Это «Человеко-понятные УРЛы», то есть, формируются ссылки, понятные для интернет-пользователей.
  • Изменять исходный код страниц.
  • Управлять доступом к файлам и директориям при помощи паролей.
  • Задавать индексный файл.
  • Открывать и закрывать доступ с определенных IP-адресов.
  • Управлять поисковыми ботами на сайте.
  • Настраивать директивы сложного направления.

Главное предназначение .htaccess – настраивать сайт и каталоги в соответствии с определенными требованиями. То есть, посредством этого файла, SEO-специалисты и программисты могут изменять настройки веб-сервера, даже не имея администраторских прав. Но изменения вносятся только для определенного сайта, и на сам сервер они никак не влияют.

Конфигурации сервера изменяются только с использованием директив (команд), включающих в себя «ключ» и «значение» для него. Все самые важные директивы, позволяющие управлять сервером, находятся в основном файле конфигурации, называющимся httpd.conf. Проблема в том, что у рядового пользователя нет возможности получить к нему доступ, так как там находится большое количество параметров, от которых зависит работоспособность всего сервера. Вот почему актуален .htaccess, позволяющий менять некоторые директивы в главном файле.

Все корректировки во вспомогательном файле действуют на весь каталог, в котором он расположен. И если загрузить данный документ в корневую папку сайта, то изменения коснутся всего ресурса.

Как это работает?

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

RewriteEngine On

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

RewriteCond %{HTTPS} off 
RewriteCond %{HTTP_HOST} !^www. 

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

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

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

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

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

RewriteRule ^ https://www.%1%{REQUEST_URI} 

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

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

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

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

Редиректы

Редирект на .html

Пример, редирект с c site.ru/blog на site.ru/blog.html.

RewriteCond %{REQUEST_URI} (.*/[^/.]+)($|\?)
RewriteRule .* %1.html 
RewriteRule ^(.*)/$ /$1.html 

Редирект на страницу без слеша в конце адреса

Пример, редирект с c site.ru/blog/ на site.ru/blog.

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/$ /$1 

Редирект на страницу со слешем в конце адреса

RewriteCond %{REQUEST_URI} (.*/[^/.]+)($|\?)
RewriteRule .* %1/ 

Редирект на страницу без index.php в адресе

RewriteRule ^index.php/(.*)$ http://mysite.ru/$1 

Редирект на страницу без index.php в конце адреса

RewriteCond %{THE_REQUEST} ^{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http://site.ru/ 

Редирект с www на без www

RewriteCond %{HTTP_HOST} ^www\.site\.ru$ 
RewriteRule ^(.*)$ http://site.ru/$1 

Редирект без www на www

RewriteCond %{HTTP_HOST} ^site.ru$ 
RewriteRule ^(.*)$ http://www.site.ru/$1 

Склейка доменов

Пример, у вас несколько доменов, но посетитель должен переправляться на один.

RewriteCond %{HTTP_HOST} !^site.ru$
RewriteRule ^(.*) http://site.ru/$1 

Редирект со старых статических url на новые

Пример редирект со страницы http://site.com.ru/id=21.

RewriteCond %{QUERY_STRING} ^id=21$
RewriteRule ^/page.php$ http://site.ru/news.html 

Защита от хотлинка

Если вы хотите запретить вставку изображений с сайта по прямой ссылке.

Вместо site.ru укажите адрес сайта, jpg|jpeg|png|gif — расширение запрещенных изображений, images.jpg – изображение которое будет показываться, если картинка находится не в корне сайта, укажите полный путь.

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?site.ru 
RewriteRule \.(jpg|jpeg|png|gif)$ images.jpg 

Защита от брутофорса

Разрешаем доступ к директории administrator только по протоколу HTTP, что отсеет некоторых ботов. Для каждой CMS нужно указать свой адрес, например wp-login, wp-admin и так далее.

RewriteCond %{REQUEST_URI} ^/administrator\.php$
RewriteCond %{THE_REQUEST} HTTP/1\.0
RewriteRule ^(.*)$ - 

Бытует легенда, что происхождения названия сервера Апач происходит не от названия индейского племени. Когда сервер был еще в самом начале пути, группа энтузиастов небольшие дополнения к коду, патчи (англ – patch), и «a patchy server» превратилось в Апач, а знаменитое перо на логотипе появилось позже.

В материале перечислены наиболее часто используемые примеры, а большинство возможностей даже не упомянуто, как модуль mod_rewrite, предоставляющий множество возможностей.

Статья писалась эпизодическими «набегами», так что если увидите ошибку, поправьте.

Мой аккаунт на Marketplace — https://timeweb.com/ru/community/marketplace/bashkov-vladislav, обращайтесь

Перенаправить HTTP на HTTPS с помощью виртуального хоста

Виртуальные хосты Apache определяют настройки одного или нескольких доменов, размещенных на сервере. В директиве виртуального хоста вы можете указать корень документа сайта (каталог, содержащий файлы веб-сайта), создать отдельную политику безопасности для каждого сайта, использовать разные сертификаты SSL, настроить перенаправление и многое другое.

Обычно, когда сертификат SSL установлен в домене, у вас будет две директивы виртуального хоста для этого домена. Первый для HTTP-версии сайта на порту 80, а второй для версии HTTPS на порту 443.

В дистрибутивах на основе Red-Hat, таких как CentOS и Fedora, файлы виртуальных хостов хранятся в каталоге . В Debian и его производных, таких как Ubuntu, файлы хранятся в каталоге .

Чтобы перенаправить веб-сайт на HTTPS, используйте директиву как показано в примере ниже:

Поясним код. Мы используем две директивы виртуального хоста: одну для HTTP и одну для HTTPS-версии сайта.

  • — Сервер Apache прослушивает входящие соединения на порту 80 (HTTP) для указанного домена.
  • — Сервер Apache прослушивает входящие соединения на порту 443 (HTTPS) для указанного домена.

Директивы и определяют доменные имена виртуального хоста. Убедитесь, что вы заменили его на свое доменное имя.

Выделенная строка « внутри виртуального HTTP-хоста» перенаправляет трафик на HTTPS-версию сайта.

Обычно вы также хотите перенаправить HTTPS-версию сайта с www на не-www или наоборот. Вот пример конфигурации:

Код внутри виртуального хоста HTTPS (выделенные строки) проверяет, содержит ли заголовок запроса домен www, и перенаправляет на версию без www.

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

  • Debian и Ubuntu:

  • CentOS и Fedora:

Как сделать с помощью Nginx редирект с https на http

Файл Nginx должен содержать 2 секции server (для https и сайта http). В секции http нужно сделать редирект всех запросов на https. Для этого используется директива return. После этого выполняется обработка 2-й секции. К примеру:

server {

server_name losst.ru ;

charset off;

index index.php;

ssi on;

return 301 ;

set $root_path /var/www/losst/data/www/losst.ru;

root $root_path;

listen :80 default_server;

}

2-я секция уже с обработкой SSL принимает запросы на 443 порту:

server {

server_name losst.ru ;

ssl on;

ssl_certificate «/var/www/losst/losst.ru_le2.crtca»;

ssl_certificate_key «/var/www/losst/losst.ru_le2.key»;

ssl_ciphers EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH;

ssl_prefer_server_ciphers on;

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

add_header Strict-Transport-Security «max-age=31536000;»;

charset off;

index index.php;

set $root_path /var/www/losst/data/www/losst.ru;

root $root_path;

listen :443 default_server;

}

Здесь все достаточно понятно: инструкция return обеспечивает возврат нужных кодов ответов сервера. Мы осуществляем возврат кода 301 и вводим адрес куда будет перенаправлен посетитель. Помимо инструкции return, может использоваться и rewrite. Здесь нужно выполнить такие же действия:

rewrite ^/(.*)$ permanent;

Это стандартная запись регулярных выражений. В 1-й строке нужно выделить группу строк запросов, а во 2-й прописать правильное доменное имя. Директива может использоваться и без блока server:

if ($host ~* ^(losst\.ru|www\.losst\.ru)$ ){

rewrite ^/(.*)$ permanent;

}

На этом этапе нужно сохранить файл и выполнить тестирование конфигурации nginx:

 sudo nginx -t

Если проверка прошла успешно, сделай перезапуск Nginx:

 sudo systemctl restart nginx

Теперь проверьте ответ сервера при помощи curl:

 curl -I losst.ru

Можно также дать возможность программе пройти весь путь редиректа:

curl ILa losst.ru

Сделать настройку перенаправления на https nginx не очень сложно. Все настройки сводятся к внесению строки в файл «конфиг». Редирект с https на http nginx настраивается аналогично. Необходимо только изменить несколько символов в параметрах retrun. Обязательно нужно выполнять проверку настроек перенаправлений с www и на https. Этот момент особенно важен для СЕО продвижения.

Вас также может заинтересовать: Повышение конверсии сайта: реальные способы и пошаговая инструкция

Как правильно перенести сайт с протокола http на https

Где находится .htaccess

Можно с легкостью проверить, есть ли у вас служебный файл. От многих других документов он отличается тем, что имеет только расширение в виде названия из слова, тогда как самого названия нет. Да, мы все привыкли видеть файлы с названием из слова, и расширением после точки, которое состоит всего из 2-3 букв. Но пустые названия позволяют делать файлы и папки «скрытыми», с открытым исходным кодом. Из этого следует вывод, что .htaccess для обычных пользователей остается невидимым, поэтому они не смогут его изменить.

Но есть у этого метода «скрытия» файла и обратная сторона медали. В стандартных FTP-клиентах на ОС Windows и Mac, документ очень часто остается невидимым для пользователей, из-за чего они ошибочно полагают, что его просто нет. Поэтому человек создает новый файл для внесения своих конфигураций, кодов для обработки ошибок, создания доступа к папкам и пр. Хорошо, что большинство хостингов оставляют место на диске, где htaccess-файл уже установлен автоматически.

Но если вы не найдете его, то попробуйте зайти в менеджер файлов, который встроен в ваш хостинг. В нем могут показываться скрытые файлы и директории. Ищите его в public_html, а затем с помощью установленного в программе текстового редактора откорректируйте и сохраните файл, после чего он загрузится на сервер самостоятельно.

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

Недорогие хостинги зачастую запрещают клиентам создавать и изменять подобный документ. Таким образом они стимулируют пользоваться их услугами по более дорогостоящим тарифам, где это разрешено.

Создание постоянной переадресации 301 через настройки и плагины CMS

В большинстве популярных конструкторов сайтов и CMS (OpenCart, Joomla!, Битрикс, Wix, Тильда) предусмотрена настройка редиректов с помощью встроенных инструментов. Если сайт создан с помощью WordPress, для настройки переадресации можно воспользоваться следующими плагинами:

  • Redirection — самый популярный плагин для настройки редиректов. Кроме основной функции обладает следующими возможностями: сбором статистики переадресаций, отслеживанием ошибок 404, поддержкой регулярных выражений.

  • Safe Redirect Manager — простой плагин, который также поддерживает регулярные выражения, практически не влияет на производительность сайта.

  • Quick Page/Post Redirect Plugin — еще один удобный инструмент оптимизации. Один из недостатков — отсутствие поддержки регулярных выражений. К ссылкам можно добавлять атрибут «nofollow».

  • Simple 301 Redirects. Данный модуль обладает одним недостатком – url для переадресации необходимо прописывать вручную.

Настроить Permanent Redirect 301 в Вордпресс можно и через редактирование файла .htaccess в разделе управления хостингом. Чтобы подключиться к нему, потребуется использовать FTP-клиент. Сама кодировка производится по общим правилам настройки переадресации в .htaccess.

Чтобы настроить 301 редирект в CMS OpenCart в файле .htaccess необходимо прописать:

RewriteCond %{QUERY_STRING} ^_route_=адрес_старой_страницы.html$

RewriteRule ^(.*)$ http://ваш_домен.ru/новой_страницы/? 

Для Битрикс кодировка будет выглядеть следующим образом:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^www.sng-it.ru$ 

RewriteRule ^(.*)$ http://sng-it.ru/$1 

В Joomla настройки переадресации производятся через панель администратора в разделе «Компоненты» => «Перенаправление». Здесь можно не только установить правила редиректа, но и отслеживать страницы с битыми ссылками и перенаправлять их на корректные адреса.

С конструкторами сайтов все не так однозначно. Например, один из наиболее популярных CMS-конструкторов WIX не предоставляет возможности создания файла .htaccess.

Но настроить редирект 301 довольно просто в базовом редакторе.

Один (а не два последовательных!) 301 редирект на c www и со слешем на конце адреса страницы

RewriteCond %{REQUEST_URI} !\?
RewriteCond %{REQUEST_URI} !\&
RewriteCond %{REQUEST_URI} !\=
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_URI} !\/$
RewriteCond %{HTTP_HOST} ^www\.(.*)$
RewriteRule ^(.*)$ http://www.%1/$1/

RewriteCond %{REQUEST_URI} !\?
RewriteCond %{REQUEST_URI} !\&
RewriteCond %{REQUEST_URI} !\=
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_URI} !\/$
RewriteCond %{HTTP_HOST} ^(.*)$
RewriteRule ^(.*)$ http://www.%1/$1/

RewriteCond %{REQUEST_URI} !\?
RewriteCond %{REQUEST_URI} !\&
RewriteCond %{REQUEST_URI} !\=
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_URI} !$
RewriteCond %{HTTP_HOST} ^(.*)$
RewriteRule ^(.*)$ http://www.%1/$1

Где расположен htaccess

Обычное дефолтное расположение этого документа – корень сайта. Каких-то примеров локального использования конфига только для определенных папок внутри сайта я не видел. Чтобы обнаружить этот документ, вам достаточно зайти в файловый менеджер вашего хостинга или же воспользоваться FTP-клиентом.

Htaccess будет расположен прямо в корне (/public_html, если это виртуальный хостинг). Его можно будет открыть с помощью любого текстового редактора.

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

Также вы можете просто скачать его и открыть при помощи любого редактора на вашем компьютере.

Но если вы хотите изменить этот файл на WordPress, то вам совсем не обязательно заходить на хостинг и открывать его там. Достаточно будет просто зайти в настройки плагина Yoast SEO, перейти во вкладку “Инструменты”. Содержимое конфига будет доступно прямо там, в специальном окне. Вы сможете легко его менять, и все изменения будут автоматически заноситься в настоящий конфиг.

Такой вариант можно считать более оправданным, потому что никаких лишних забот тут нет. Но стоит заметить, что далеко не все используют плагин Yoast SEO. В других SEO-плагинах также есть похожие возможности.

Этот файл не всегда есть на молодых проектах. Если вы совсем недавно создали свой ресурс, то вполне возможно, что вы просто не обнаружите этот документ на своем хостинге. В таком случае вы можете просто создать его самостоятельно. У этого конфига нет расширения, только название – .htaccess.

Его можно сделать при помощи встроенных инструментов (в том же файловом менеджере, например) либо же создать конфиг на своем компьютере и уже после загрузить на хостинг при помощи инструментов или FTP-клиента.

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

Возможно, в будущем у вас всплывут и другие проблемы, поэтому я рекомендую менять хостинг, если он не дает возможность вам настроить дополнительные параметры.

Основные виды редиректов

Всего существует 10 различных кодов, которые осуществляют перенаправление, но в своей работе в 98% случаев вы будете встречать 301, 302 и 304, о них ниже.

301 Moved Permanently

Запрашиваемый документ перемещён на другой URL-адрес навсегда. Это код ответа сервера, который вызывает больше всего вопросов у начинающих.

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

После краулинга таких страниц поисковые системы рано или поздно «склеят» их с целевой страницей редиректа и передадут вес.

Старайтесь убирать внутри сайта все ссылки на страницы, которые отдают 301 код ответа, и проставьте сразу целевую страницу редиректа.

Google утверждает, что для него все редиректы равнозначны, но ведь есть ещё другие поисковые системы, поэтому ставим всегда 301.

302 Found

Уведомляет клиента, что страница найдена и временно расположена по другому адресу.

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

304 Not Modified

На самом деле, это не совсем редирект, это «уведомление» о том, что страница не изменялась с предыдущего посещения.

Код 304 Google использует и это положительно влияет на краулинговый бюджет. Яндекс такой код не использует.

При обращении, если GoogleBot видит 304 код ответа сервера – он не скачивает страницу.

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

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

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

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

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

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

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

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

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

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

Редирект с протокола http на https.

RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1

Если возникает циклический редирект, то воспользуйтесь этим вариантом:

RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI}

Для Битрикс-сайтов на хостинге reg.ru

RewriteCond %{SERVER_PORT} !^443$
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI}

Для сертификатов https c Cloudflare:

RewriteCond %{HTTP:CF-Visitor} ‘»scheme»:»http»‘
# Without Cloudflare:
# RewriteCond %{HTTPS} off 
RewriteRule ^ https://www.example.com%{REQUEST_URI}

RewriteEngine On
RewriteCond %{HTTPS} =off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI}

RewriteEngine On
RewriteCond %{ENV:HTTPS} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI}

RewriteEngine on
RewriteCond %{HTTP:HTTPS}  !on
RewriteCond %{REQUEST_URI} !robots.txt
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

Этап 1. Удаление параметра «Требовать SSL» для веб-сайта по умолчанию с помощью диспетчера служб IISStep 1: Use IIS Manager to remove the Require SSL setting from the default website

  1. Откройте диспетчер служб IIS на сервере Exchange. Открыть диспетчер служб IIS в Windows Server 2012 или более поздних версиях легко. Просто нажмите клавишу Windows+Q, введите в строке поиска inetmgr и в списке результатов выберите Диспетчер служб IIS.Open IIS Manager on the Exchange server. An easy way to do this in Windows Server 2012 or later is to press Windows key + Q, type inetmgr, and select Internet Information Services (IIS) Manager in the results.

  2. Разверните узел сервера, а затем раздел Сайты.Expand the server, and expand Sites.

  3. Выберите Веб-сайт по умолчанию и убедитесь, что в нижней части страницы выбран элемент Просмотр возможностей.Select Default Web Site. and verify Features View is selected at the bottom of the page.

  4. В разделе IIS дважды щелкните элемент Параметры SSL.In the IIS section, double-click SSL Settings.

  5. На странице Параметры SSL снимите флажок Требовать SSL, а затем на панели Действия нажмите кнопку Применить.On the SSL Settings page, clear the Require SSL check box, and in the Actions pane, click Apply.

Примечание. Чтобы выполнить эту процедуру в командной строке, откройте командную строку с повышенными привилегиями на сервере Exchange Server (для этого выберите Запуск от имени администратора) и выполните следующую команду:Note: To perform this procedure on the command line, open an elevated command prompt on the Exchange server (a Command Prompt window you open by selecting Run as administrator) and run the following command:

Для чего нужен файл htaccess и как его найти

Файл htaccess — является файлом конфигурации веб-сервера Apache и задает правила работы веб-сервера в тех каталогах и подкаталогах, где размещен.

Располагается файл htaccess соответственно в том каталоге, для которого задает правила работы. Чаще всего для вашего сайта это будет корневая папка.

301 редирект применяют в ситуации, если URL адреса сайта сменились на новые, и необходимо «склеить» старые и новые страницы. Например:

  • при смене домена;
  • склейки в целях SEO-оптимизации. Например, страниц вида: «www.sitexample.com» и «sitexample.com»;
  • при смене URL страницы, для сохранения трафика, приносимого страницей;
  • при смене протокола с http на https;
  • для переадресации со страниц с кодом ответа 404 на актуальные.

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

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

Вариант 1

PHP

RewriteCond %{HTTPS} =off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

1
2

RewriteCond%{HTTPS}=off

RewriteRule(.*)https//%{HTTP_HOST}%{REQUEST_URI}

Вариант 2

PHP

RewriteCond %{SERVER_PORT} !^443$
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI}

1
2

RewriteCond%{SERVER_PORT}!^443$

RewriteRule.*https//%{SERVER_NAME}%{REQUEST_URI}

Вариант 3

PHP

RewriteCond %{ENV:HTTPS} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI}

1
2

RewriteCond%{ENVHTTPS}!on

RewriteRule^(.*)$https//%{HTTP_HOST}%{REQUEST_URI}

Вариант 4

PHP

RewriteCond %{HTTP:X-HTTPS} !1
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1

1
2

RewriteCond%{HTTPX-HTTPS}!1

RewriteRule^(.*)$https//%{HTTP_HOST}/$1

Вариант 5

PHP

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

1
2

RewriteCond%{HTTPCF-Visitor}'»scheme»:»http»‘

RewriteRule^(.*)$https//www.site.ru/$1

Вариант 6

PHP

RewriteCond %{HTTP:X-Forwarded-Protocol} !=https
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI}

1
2

RewriteCond%{HTTPX-Forwarded-Protocol}!=https

RewriteRule.*https//%{SERVER_NAME}%{REQUEST_URI}

Вариант 7

PHP

RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI}

1
2
3

RewriteCond%{HTTPX-Forwarded-Proto}!https

RewriteCond%{HTTPS}off

RewriteRule^https//%{HTTP_HOST}%{REQUEST_URI}

Вариант 8

PHP

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI}

1
2
3
4

RewriteEngineOn

RewriteCond%{HTTPS}off

RewriteCond%{HTTPX-Forwarded-Proto}!https

RewriteRule^(.*)$https//%{HTTP_HOST}%{REQUEST_URI}

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

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

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

Adblock
detector