Полное руководство по 301 редиректу

Содержание:

Поисковые фразы

Типы редиректов и как их можно выявить

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

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

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

Для того, чтобы убедиться, что редирект выполняется только на стороне сервера, достаточно отключить поддержку javascript в браузере. Если у вас была стопроцентная воспроизводимость переадресации со включенным javascript, а с выключенным она пропадает, то достаточно достоверно можно утверждать, что она выполняется на стороне сервера. То есть дальше можно продолжать поиск данного редиректа внутри скриптов или модуля веб-сервера.

Серверные редиректы бывают достаточно простые. Это небольшой фрагмент кода, вставленный в PHP файл. Если это код вставлен в статический файл (файл .htaccess), то его тоже достаточно просто найти обычным поиском по домену, на который происходит переадресация.

Поиск серверных редиректов можно выполнять вручную, просто выполнив поиск по файлам того домена, на который происходит переадресация. Можно также выполнять поиск с помощью специальных сканеров (например, AI-BOLIT).

Для того, чтобы анализировать браузерные редиректы, необходимо использовать снифферы трафика. Достаточно сложно определить каким образом происходит переадресация посетителей, на какие сайты и при каких условиях. Чтобы посмотреть исходную проблему можно добавить сайт, на котором наблюдается переадресация, в панель вебмастера Яндекс или Google, посмотреть цепочку вызовов и попытаться найти первый редирект в файлах.

Пример двойного редиректа

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

http://site.ru/catalog -> https://site.ru/catalog

Допустим, у вас сначала был настроен редирект на https подобным образом:

server {
 listen 80;
 root   /var/www/site.ru/public;

 location / {
  return 301 https://site.ru$request_uri;
 }
}

А потом вас попросили добавить редирект всех урлов без слеша на тот же урл только со слешем на конце. Вы идете в секцию c listen 443 и добавляете редирект.

server {
 listen 443 http2;
...................
 location / {
  rewrite ^(*)$ $1/ permanent;
...................
}
# curl -I -L http://site.ru/catalog

HTTP/1.1 301 Moved Permanently
Server: nginx
Content-Type: text/html
Content-Length: 162
Connection: keep-alive
Location: https://site.ru/catalog

HTTP/2 301 
server: nginx
content-type: text/html
content-length: 162
location: https://site.ru/catalog/

HTTP/2 200 
server: nginx
content-type: text/html; charset=utf-8
vary: Accept-Encoding

На выходе у вас 2 редиректа вместо одного, что плохо для СЕО. Надо по возможности все реализовать в одном. В данном случае напрашивается простое и очевидное решение:

server {
 listen 80;
 server_name site.ru www.site.ru;
 root   /var/www/site.ru/public;

 location / {
  return 301 https://site.ru$request_uri/;
 }
}

Вроде бы все нормально. Теперь редирект будет автоматически добавлять слеш в конец запроса. Но проблемы начнутся со ссылками на медиа файлы. Например, запрос http://site.ru/catalog/img.png будет превращаться в https://site.ru/catalog/img.png, что нам совершенно не нужно. Чтобы это исправить, надо сделать так.

server {
 listen 80;
 server_name site.ru www.site.ru;

 location ~* ^.+.(js|css|png|jpg|jpeg|gif|webp|ico|woff|txt)$ {
  return 301 https://site.ru$request_uri;
 }

 location / {
  return 301 https://site.ru$request_uri/;
 }
}

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

3.Другие примеры с htaccess

3.1. Запретить IP-адрес и браузер

Запретим открывать сайт для пользователя с браузера IE с IP-адресом 172.111.222.55

RewriteCond %{HTTP_USER_AGENT} MSIE
RewriteCond %{REMOTE_ADDR} ^172\.111\.222\.55$
RewriteRule ^.*$ - 

Запретим для всех файл disable_file.html:

<Files disable_file.html>
deny from all
</Files>

3.3. Разрешить доступ с одного ip

Доступ будет разрешен только с одного ip-адреса 172.111.222.55

order deny,allow
deny from all
allow from 172.111.222.55

3.4. Запретить доступ с разных ip

Запретить доступ к сайту с нескольких ip-адреса 172.112.222.55, 172.113.222.55, 172.114.*.*

<Limit GET POST PUT>
order deny,allow
deny from all
deny from 172.112.222.55
deny from 172.113.222.55
deny 172.114.*.*
</LIMIT>

3.5. Редирект в URL с больших символов на маленькие

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

RewriteRule  - 
RewriteRule ! - 

RewriteRule ^(*)A(.*)$ $1a$2
RewriteRule ^(*)B(.*)$ $1b$2
RewriteRule ^(*)C(.*)$ $1c$2
RewriteRule ^(*)D(.*)$ $1d$2
RewriteRule ^(*)E(.*)$ $1e$2
RewriteRule ^(*)F(.*)$ $1f$2
RewriteRule ^(*)G(.*)$ $1g$2
RewriteRule ^(*)H(.*)$ $1h$2
RewriteRule ^(*)I(.*)$ $1i$2
RewriteRule ^(*)J(.*)$ $1j$2
RewriteRule ^(*)K(.*)$ $1k$2
RewriteRule ^(*)L(.*)$ $1l$2
RewriteRule ^(*)M(.*)$ $1m$2
RewriteRule ^(*)N(.*)$ $1n$2
RewriteRule ^(*)O(.*)$ $1o$2
RewriteRule ^(*)P(.*)$ $1p$2
RewriteRule ^(*)Q(.*)$ $1q$2
RewriteRule ^(*)R(.*)$ $1r$2
RewriteRule ^(*)S(.*)$ $1s$2
RewriteRule ^(*)T(.*)$ $1t$2
RewriteRule ^(*)U(.*)$ $1u$2
RewriteRule ^(*)V(.*)$ $1v$2
RewriteRule ^(*)W(.*)$ $1w$2
RewriteRule ^(*)X(.*)$ $1x$2
RewriteRule ^(*)Y(.*)$ $1y$2
RewriteRule ^(*)Z(.*)$ $1z$2

RewriteRule  - 

RewriteCond %{ENV:HASCAPS} TRUE
RewriteRule ^/?(.*) /$1 

301 Редирект .htaccess — полный обзор с примерами, опубликовано К ВВ, лицензия — Creative Commons Attribution-NonCommercial 4.0 International.

Первый стать невидимым в ВК для пользователей браузера Firefox

  1. Введите в адресную строку браузера “about:config” и нажмите Enter. После этого вы увидите настройки программы.
  2. На некоторое время делаем запрет на переадресацию. Для этого в поисковой строке вводим “network.http.redirection-limit” и указываем в его свойствах нулевое значение.
  3. Далее заходим в собственный аккаунт (персональную страницу) путем ввода в адресную строку браузера http://vkontakte.ru/login.php, вводим логин и пароль от учетной записи.
  4. Видим сообщение об ошибке. Не бойтесь, это вполне нормально, так и должно быть.
  5. Переходим на любую понравившуюся страницу социальной сети Вконтакте, но только не на “profile.php”.
  6. Возвращаемся к настройкам браузера, вводим в поисковую строку настроек “network.http.redirection-limit” и возвращаем этому параметру то значение, которое было у него до изменений (по умолчанию).

Влияют ли 301 редиректы на поисковую оптимизацию?

Большинство специалистов по поисковой оптимизации обращают внимание на связь между 301 редиректом и рангом PageRank. Не знакомы с PageRank? Это формула, созданная компанией Google для определения «ценности страницы» на основе количества и качества ее ссылок

Конечно, PageRank —далеко не единственный «фактор ранжирования», но обычно считается, что в целом более высокий PageRank соответствует более высокому рейтингу

Не знакомы с PageRank? Это формула, созданная компанией Google для определения «ценности страницы» на основе количества и качества ее ссылок. Конечно, PageRank —далеко не единственный «фактор ранжирования», но обычно считается, что в целом более высокий PageRank соответствует более высокому рейтингу.

Это как-то доказано? Да, компания Google (пере)утвердила PageRank в качестве сигнала для ранжирования в прошлом году:

Существует также четкая положительная корреляция между, который работает аналогично рангу PageRank, и объемом органического трафика, получаемого на странице:

Примечание.Причина, по которой я говорю о рейтингах URL (UR), а не о PageRank, заключается в том, что компания Google перестала публично обновлять PageRank в  году. Теперь не существует способа узнать ранг PageRank для страницы. Я ни в коем случае не говорю, что UR является эквивалентом PageRank, но это самая близкая сопоставимая метрика, существующая на сегодняшний день. 

И как это все-таки относится к 301 редиректам?

Если вы использовали 301 редирект для перенаправления одной страницы на другую до 2016 года, то теряли попутно PageRank. Насколько именно? Это спорный вопрос, но было принято считать, что примерно на 15%. Это то же число, на которое ссылался Мэтт Каттс, бывший глава Google по веб-спаму, в этом видео 2013 года:

Примечание. На самом деле в этом видео Мэтт не говорил, что 301 редирект приводит к потере 15% ранга PageRank. Он просто привел фигуральный пример. Тем не менее, именно это число большинство специалистов по поисковой оптимизации использовали в течение нескольких лет. Это, вероятно, связано с тем, что 15% также относится к «коэффициенту затухания» в оригинальном патенте PageRank.

Исключительно в целях дискуссии предположим, что этот уровень составлял именно 15%.

Вот что в этом случае получается:

Однако компания Google изменила свою официальную позицию по этому вопросу в 2016 году:

Таким образом, в 2019 году, если вы перенаправите domain.com/page1 на domain.com/page2, то конечная страница должна иметь столько же «силы», сколько и исходная страница.

Это ОЧЕНЬ важно, и это одна из причин, по которым 301 редиректы могут быть очень полезными для увеличения органического трафика. (Подробнее об этом позже!). Но 301 редиректы могут вызвать множество других проблем, связанных с поисковой оптимизацией, о которых не часто говорят

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

Что такое RivaTuner Statistics Server? Как установить, настроить и пользоваться программой?

Как влияет редирект с http на https на SEO

После настроек редиректа с http на https обязательно измените адрес своего ресурса robots. txt (нужно  указать новое главное зеркало в панели вебмастера для поисковиков).

Позиции сайта первое время после установки редиректа могут снизиться, но лишь на небольшой промежуток времени. Чем раньше вы выполните перенастройку, тем менее значительные скачки будут по SEO выдаче.

Рекомендации, которые предоставил Яндекс в отношении данного редиректа:

  1. Добавить ресурс в панель Яндекс-вебмастер.
  2. Произвести настройку в robots директивы Host  (нужно, чтобы robots. txt нового и старого ресурса не отличался).
  3. После того, как оба сайта будут признаны зеркалами, необходимо изменить протокол в сервисе «Настройки индексирования — Главное зеркало». Через несколько недель будет определено основное зеркало.
  4. Установить перенаправление со старого протокола на новый.

Рекомендации по редиректу от Google:

  1. Добавить ресурс в Search Console.
  2. Проверить наличие редиректа 301 со всех страниц на новый сайт (редирект страницы с http на https).
  3. Использовать сервис «Изменение адреса в настройках».

Редирект с http на https поможет в продвижении сайта только тогда, когда с вашим ресурсом все в порядке. А узнать, все ли хорошо с вашим сайтом, поможет наш аудит.

Оставить заявку

Как сделать 301 редирект через .htaccess

Перед началом настройки 301 редиректов необходимо определиться с операторами регулярных выражений, которые помогут сделать правильную настройку:

  • ^ — ограничение слева;
  • $ — ограничение справа;
  • — 0 и более символов;
  • + — 1 и более символов;
  • . — любой символ;
  • \ — экранирование;
  • () — переменная;
  • [] — диапазон значений.

Настройка 301 редиректа может быть выполнена разными способами. Большинство вебмастеров предпочитает делать это через файл .htaccess. Он прописан практически в каждой популярной CMS и в корне вашего сайта. Скачивание .htaccess можно осуществить через FTP при помощи клиента FileZila.

Данный файл открывается тестовым редактором, например, Notepad++. Теперь поверх всех кодов редиректов надо прописать следующую строку:

RewriteEngine On

Вас также может заинтересовать: Анкор ссылки: виды, правила составления, влияние на продвижение

Создание верхней панели навигации

Шаг 1) Добавить HTML:

Пример

<div class=»topnav»>  <a class=»active» href=»#home»>Главная</a>  <a href=»#news»>Новости</a>  <a href=»#contact»>Контакт</a>   <div class=»topnav-right»>    <a href=»#search»>Поиск</a>    <a href=»#about»>О Нас</a>  </div></div>

Шаг 2) Добавить CSS:

Пример

/* Добавить черный цвет фона для верхней навигации */.topnav {    background-color: #333;    overflow: hidden;}/* Стиль ссылок внутри панели навигации */.topnav a {  float: left;  color: #f2f2f2;  text-align: center;  padding: 14px 16px;  text-decoration: none;  font-size: 17px;}/* Изменение цвета ссылок при наведении курсора */ .topnav a:hover {  background-color: #ddd;  color: black; }/* Добавить цвет для активной/текущей ссылки */.topnav a.active {  background-color: #4CAF50;  color: white;}/* Выровненный по правому краю раздел внутри верхней навигации */.topnav-right {  float: right;}

Совет: Чтобы создать удобные для мобильных устройств, отзывчивые навигационные панели, прочитайте наш учебник Как сделать — Отзывчиую верхнюю навигацию.

Совет: Зайдите на наш учебник CSS Навигация чтобы узнать больше о навигационных барах.

14-08-20

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

Многие думаю, что достаточно физического перенаправления страницы, однако важно, чтобы ваш сайт передал в заголовках статус 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} 
</IfModule>

Пример 2

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$ 
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} 
</IfModule>

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

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

SSL сертификат

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

Бесплатный SSL

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

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

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

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

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

Услуги

Как избежать заражения

Про это пишут все, всегда и очень много. Вот основные постулаты:

  • делать постоянно бэкапы
  • своевременное обновление как CMS, так и всех расширений
  • создавать пароли из букв (прописных и заглавных) и цифр, возможно использовать символы, чем длиннее, тем лучше, это на случай брута админки
  • взять за правило менять пароли, хоста, ftp, админки, и даже бд и это не параноя, а простое правило
  • вести логи сервера с ротацией и чем больше срок их хранения, тем лучше

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

Примеры 301 редиректов в .htaccess

Мы уже рассматривали множество примеров с редиректом по .htaccess в статьях:

  • 301 редирект для удаления/добавления слэша в конце URL;
  • 301 редирект с index (.html и .php) на корень сайта «/»;
  • Редирект 301 с http на https;
  • Редирект 301 с www на без www;
  • Смена адреса сайта — редирект со старого домена на новый;

Здесь мы дополним варианты редиректов, которых ещё не было.

Редирект с site.ru/cat/oldpage на site.ru/newpage.html

2.4. Удаление лишних слэшей в адресе URL

Например, страница /catalog///stranica.html доступна и открывается. Чтобы избежать такой ситуации и не плодить бесконечное число дублей следует записать следующий редирект

2.5. Реврайт без редиректа

Можно загрузить другую страницу без смены адреса страницы URL. Например, загрузим страницу /news.html, а в адресной строке будет отображаться адрес /news/happy

2.6. Простановка замыкающего слеша в конце адреса главной страница

Например, многие сервера работают так, что последний слэш не пишется в URL. Например, http://site.ru. Ниже приведенный код решают это проблему: сайт будет открывать по http://site.ru/

Например, для редиректа со страницы site.com/directoriya/stranica.html на site.com/stranica.html нужно прописать следующее:

2.9. Редирект на мобильную версию сайта m.site.ru

В данном примере сначала проверяется факт того, что пользователь открыл сайт с мобильного устройства {HTTP_USER_AGENT}, далее происходит замена адреса сайта на m.URL

Примеры использования для защиты сайта от множественных дублей страниц

Редирект с разных доменов и субдоменов

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

Таким образом, все домены типа www.site.ru, www.site.net, test.site.com будут переадресовываться на сайт www.site.com.

Как удалить несколько слешей/тире в урле

Иногда «по случайности» в урле могут появиться по несколько слешей, например, www.site.com/catalog////page-1.html. В таких случаях необходимо делать 301 редирект на страницу с одним слешем www.site.com/catalog/page-1.html :

Аналогично, можно склеить в урле несколько дефисов в один: с www.site.com/catalog/page—1.html на www.site.com/catalog/page-1.html:

Как сделать редирект с любого урла на url только в нижнем регистре

Поскольку поисковыми системами регистр букв учитывается, то при проектировании сайта желательно, чтобы все урлы были в нижнем регистре. Однако, если вы изначально упустили данный момент, то лучше всего воспользоваться следующим кодом для редиректа на уровне php-скрипта:

Путь хранения файлов сессий

Как сделать переадресацию 301

Существует много способов сделать переадресацию 301, но самый распространенный метод — отредактировать файл .htaccess вашего сайта.

Вы найдете его в корневой папке вашего сайта:

Не видите файл? Это означает одно из двух:

  1. У вас нет файла .htaccess. Создайте его с помощью Блокнота (Notepad в Windows) или TextEdit (Mac). Просто создайте новый документ и сохраните его с расширением .htaccess. Обязательно удалите стандартное расширение файла .txt.
  2. Ваш сайт работает не на веб-сервере Apache. Это скорее технический аспект, но существуют разные типы веб-серверов. Apache, Windows/IIS и Nginx являются наиболее распространенными. Только серверы Apache используют файлы .htaccess. Чтобы проверить, работает ли ваш сайт на Apache, используйте этот инструмент. Убедитесь, что в разделе «История хостинга» (Hosting History), в колонке «Веб-сервер» (Web server) указано «Apache».

Вот некоторые фрагменты кода для добавления распространенных типов переадресаций 301 с помощью файла .htaccess:

ВАЖНО. Эти инструкции предназначены исключительно для веб-серверов Apache. Здесь можно почитать, что делать, если ваш сайт работает на Nginx, а здесь — если ваш сайт работает на Windows/IIS

Перенаправление старой страницы на новую

 Redirect 301 /old-page.html /new-page.html 

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

Добавить 301 редирект станет намного проще:

Перенаправление старого домена на новый

 RewriteEngine on
RewriteCond %{HTTP_HOST} ^oldsite.com 
RewriteCond %{HTTP_HOST} ^www.oldsite.com 
RewriteRule ^(.*)$ https://newsite.com/$1  

Примечание. Существует несколько способов это сделать. Я ни в коем случае не эксперт в том, что касается серверов Apache и файлов .htaccess. Этот код у меня всегда срабатывал. Но вам следует обязательно протестировать его перед внедрением на своем сайте. 

ВАЖНО! Если уже есть в вашем файле .htaccess, не повторяйте его. Просто скопируйте остальную часть кода

Это можно сделать и в Cpanel, если так удобнее.

Перенаправление всего домена с версии без www на версию с www (и наоборот)

Вот вариант для перенаправления с версии без www на версию с www:

 RewriteEngine on
RewriteCond %{HTTP_HOST} ^example.com 
RewriteRule ^(.*)$ http://www.example.com/$1  

Вот вариант для перенаправления с версии с www на версию без www:

 RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.example.com 
RewriteRule ^(.*)$ http://example.com/$1  

ВАЖНО! Расположение и порядок кода в вашем файле .htaccess также имеет значение. Вы можете столкнуться с нежелательными последствиями, если несколько команд размещены в «неправильном» порядке (например, в случае цепочек переадресаций и т. д.)

Если вы планируете использовать много 301 редиректов в своем файле .htaccess, то вам стоит внимательно все проверить.

Перенаправление всего домена с HTTP на HTTPS

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

ВАЖНО! Чтобы все правильно работало, на сайте должен быть установлен сертификат SSL. В противном случае вы получите предупреждающее сообщение «Соединение не защищено»

Перенаправление всего домена с версии без www на версию с www и с HTTP на HTTPS

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

Возможные проблемы с сайтами Opencart (русской сборки OcStore)

При редактировании файла

Так как в русской сборке OcStore после установки файл имеет имя htaccess.txt следует для исправления выполнить следующую посетить корневую папку сайта и найти файл «.htaccess.txt».

Переименовываем его и удаляем часть «.txt», так, чтобы файл назывался «.htaccess».

Переходим в «Дополнения»-«Менеджер дополнений» и очищаем Кеш (кнопка в правом-верхнем углу).

Все готово.

При работе с HTTPS

В первую очередь следует проверить настройки магазина перед перенаправлением на https так как в противном случае сайт может работать некорректно или не работать вовсе.

Далее переходим в сервер и выбираем.

Прокручиваем список и во вкладке «Безопасность» ставим «Да» у «Использовать SSL».

После этого переходим в на сервер в корневую папку и проверяем файл «config.php».

В нем в части про HTTPS проверяем указан ли адрес сайта как «https://site.ru», если нет указываем.

Аналогично следует проверить корректность отображения административной части, что необходимо сделать перейдя в папку «Admin».

Теперь открываем еще один файла «config.php».

Аналогично ищем ссылки на сайт с защищенным протоколом define и при необходимости исправляем на правильные (с https).

Подписывайтесь на наши социальные сети

Как сделать редирект через файл htaccess для интернет-магазина на Opencart

Для того, чтобы перенаправить пользователя с одной страницы на другую требуется использовать следующую комбинацию:

Redirect 301 site.ru/page1/ site.ru/page2/

Где:

  • page1- страница которая будет переадресовывать;
  • page2 – открывающийся документ.

Важно! Можно записывать адреса в относительном виде, например, /page1/ и /page2/. Также допускается использование конструкции:

Также допускается использование конструкции:

Redirect permanent site.ru/page1/ site.ru/page2/

Для того, чтобы выполнить правило, потребуется посетить административную панель хостинга (или же зайти через FTP), где в корневой папке сайта на Opencart (public_html) лежит файл htaccess :

Настраиваем редиректы для SEO

Как мы уже упоминали, это самый популярный способ использования .htaccess. Перед тем, как настраивать тот или иной вид переадресации, убедитесь, что это действительно необходимо. Например, редирект на страницы со слешем в некоторых CMS настроен по умолчанию. О настройках редиректа для SEO мы писали в блоге.

При настройке 301 редиректов помните о двух правилах:

  1. Избегайте нескольких последовательных перенаправлений — они увеличивают нагрузку на сервер и снижают скорость работы сайта.
  2. Располагайте редиректы от частных к глобальным. Например, сначала переадресация с одной страницы на другую, затем общий редирект на страницы со слешем. Это правило работает не в 100% случаев, поэтому с размещением директив нужно экспериментировать.

1. Настраиваем постраничные 301 редиректы

Это потребуется в следующих случаях:

  • изменилась структура сайта и у страницы поменялся уровень вложенности;
  • страница перестала существовать, но нужно сохранить ее входящий трафик (например, в случае отсутствия товара обычно делают переадресацию на товарную категорию);
  • поменялся URL, что крайне нежелательно, но тоже встречается.

Просто удалить страницу — плохая идея, лучше не отдавать роботу ошибку 404, а перенаправить его на другой URL. В этом случае есть шанс не потерять позиции сайта в выдаче и целевой трафик. Настроить 301 редирект с одной страницы на другую можно при помощи директивы простого перенаправления:

  • — адрес страницы от корня, без протокола и домена. Например, .
  • — полный адрес страницы перенаправления, включая протокол и домен. Например, .

2. Избавляемся от дублей

Каждая страница сайта должна быть доступна только по одному адресу. Для этого должны быть настроены:

  • редирект на страницы со слешем в конце URL или наоборот;
  • главное зеркало — основной адрес сайта в поиске.

Сделать это можно при помощи модуля . В его составе используются специальные команды — директивы сложного перенаправления. Первой командой всегда идет включение преобразования URL:

Переадресация на слеш или наоборот

Настроить ли переадресацию на страницы со слешем или без, в каждом случае нужно решать индивидуально. Если у сайта уже накоплена история в поиске, анализируйте, каких страниц в индексе больше. Для новых сайтов обычно настраивают редирект на слеш. Проверить, не настроена ли переадресация по умолчанию, просто: удалите/добавьте слеш в конце URL. Если страница перезагрузится с новым адресом — мы имеем дубли, требуется настройка. Если URL подменяется — все в порядке. Проверять лучше несколько уровней вложенности.

Код 301 редиректа на страницы без слеша:

3. Настраиваем главное зеркало

Для начала нужно определиться, какой адрес будет являться основным для поиска. SSL-сертификат давно уже мастхэв. Просто установите его и добавьте правило в .htaccess. Не забудьте также прописать его в robots.txt.

Редирект на HTTPS

Определять, с «www» или без будет главное зеркало, можно несколькими способами:

  • добавить сайт в Яндекс.Вебмастер в двух вариантах, в консоли отобразится информация, какой URL поисковик считает главным зеркалом;
  • проанализировать выдачу и посмотреть, каких страниц сайта больше в индексе;
  • для нового ресурса не имеет значения, с «www» или без будет адрес, выбор за вами.

После того как выбор сделан, воспользуйтесь одним из двух вариантов кода.

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

4. Перенаправляем с одного домена на другой

Самая очевидная причина настройки этого редиректа — переадресовать роботов и пользователей на другой адрес при переезде сайта на новый домен. Также им пользуются оптимизаторы для манипуляций ссылочной массой, но дроп-домены и PBN — серые технологии продвижения, которые в рамках этого материала мы затрагивать не будем.

Воспользуйтесь одним из вариантов кода:

или

Не забудьте поменять в коде «mysite1» и «mysite2» на старый и новый домен соответственно.

301 редирект. Популярные шаблоны

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

Options +FollowSymLinks
RewriteEngine On
RewriteBase /

Склейка домена (префикс www)

www.example.com и example.com в глазах поискового работа — абсолютно разные сайты, каждый со своими показателями. Для того чтобы не распылять вес, склеиваем эти адреса

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

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

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

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

Зачастую главная страница вашего сайта доступна по нескольким адресам: example.com/ и example.com/index.php или example.com/index.html. Для склейки таких дублей, используем следующий шаблон:

Склейка индексной страницы с корнем сайта

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

Склейка поддомена и папки

Иногда возникает необходимость сделать 301 редирект с поддомена на папку сайта. Например у вас есть страница category.example.com/page/ и вам нужно склеить ее с дублирующей страницей example.com/category/page/. Прописывем в файле .htaccess поддомена:

Редирект с поддомена на папку основного домена

RewriteCond %{HTTP_HOST} ^category\.example\.com 
RewriteCond %{HTTP_HOST} ^category\.example\.com
RewriteRule ^(.*)$ http: //example .com /category/ $1 

При необходимости наоборот перенаправить с папки на поддомен:

Редирект с папки основного домена на поддомен

RewriteCond %{HTTP_HOST} ^example\.com$ 
RewriteRule ^category\/(.*)$ http: //category .example.com/$1 

Редирект с одних расширений файлов на другие

Если вам необходимо сменить расширение файла в адресе (например page.html на page.php) или убрать его совсем:

RewriteRule ^(.*)\.html$ $1.php 

Редирект на другой сайт

При создании зеркала сайта либо переезде на новый домен, для склейки и перенаправления используем следующую конструкцию:

RewriteCond %{HTTP_HOST} ^oldsite\.com
RewriteRule ^(.*)$ http: //newsite .com/$1 

Все страницы домена oldsite.com будут перенаправлены на соответствующие страницы newsite.com.

301 Редирект динамических страниц

При модернизации динамического сайта и создании ЧПУ-адресов часто возникает необходимость перенаправить старые страницы с параметрами ID на новые с ЧПУ. Например, чтобы переадресовать страницу вида http://example.com/page.php?id=13 на новую страницу http://example.com/new-url/, используется следующая конструкция:

RewriteCond %{QUERY_STRING} ^ id =13$
RewriteRule ^ /page .php$ http: //example .com /new-url/ 

Добавляем слеш в конце адреса

Если у вас на сайте реализованы ЧПУ адреса тем или иным способом, то вероятно ваши ссылки могут работать либо со «/» на конце адреса либо без него одинаково. Добавим однозначности и добавим слеш ко всем адресам.

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

Подписывайтесь на канал и узнавайте первыми о новых материалах, опубликованных на сайте.

Если считаете статью полезной,не ленитесь ставить лайки и делиться с друзьями.

VertrigoServ — локальная площадка для разработки сайтовНастраиваем под себя Sublime Text 3Потерянные заказы в Opencart (ocStore). Вылавливаем баги системы.Блог возвращается в выдачу YandexЗа что я не люблю Битрикс или CMS от маркетологовИнструменты организации и приведения в порядок кода CSS

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

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

Adblock
detector