Как установить на сервере редирект с http кодом 301

Код состояния HTTP 301 или Moved Permanently («Перемещено навсегда») — стандартный код ответа сервера, который может быть получен, если запрошенный URL-адрес сайта был навсегда перенесен в новое месторасположение.

Проверка кода ответа. Быстрая и бесплатная проверка кодов ответа для списка URL в режиме онлайн реализована в рамках комплекса инструментов «Пиксель Тулс», предусмотрено удобное цветовое кодирование и загрузка URL файлом.

Анализ проведён с помощью инструментов в сервисе Пиксель Тулс.

Options +FollowSymLinks
RewriteEngine On

# Текстовый комментарий, данная строчка не будет обрабатываться.

RewriteCond % ^site\.ru$ [NC]
RewriteRule ^(.*)$ http://www.site.ru/$1 [R=301,L]

RewriteCond % ^www.site\.ru$ [NC]
RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]

RewriteCond % ^80$ [OR]
RewriteCond % =on
RewriteRule ^(.*)$ https://pixelplus.ru/$1 [R=301,L]

Redirect 301 /was.php http://www.site.ru/new.php

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

RewriteRule ^dir /dir-new/$1 [R=301,L]

Скажем, адрес страницы имеет вид: http://www.site.ru/dir/index.php?IBLOCK_ID=1&SECTION_ID=111 тогда для настройки 301 переадресации на новый адрес, необходимо использовать следующее правило:

RewriteCond % ^IBLOCK_ID=1&SECTION_ID=111$ [NC]
RewriteRule ^dir/index\.php$ /new/sef/? [R=301,L]

Если один (или несколько) из GET параметров не задан(ы) или может иметь произвольное значение (в нашем примере это SECTION_ID), можно использовать следующий код:

RewriteCond % ^IBLOCK_ID=1&SECTION_ID=(.*)$ [NC]
RewriteRule ^dir/index\.php$ /new/sef/? [R=301,L]

Если адрес имеет следующий вид: http://www.site.ru/?abc то для перенаправления подойдет последовательность строчек:

RewriteCond % ^abc$ [NC]
RewriteRule ^$ /? [R=301,L]

Если требуется настроить переадресацию только для адреса http://www.site.ru/dir/, но при этом чтобы страница http://www.site.ru/dir/index.php?IBLOCK_ID=1 открывалась по старому адресу, необходимо использовать спецсимвол $ в правиле.

RewriteRule ^dir/$ http://www.site.ru/new-dir/ [R=301,L]

Для доменов в зоне РФ действуют все те же правила, но только все кириллические символы необходимо заменить на альтернативный код (он на латинице). В частности, сама зона .рф преобразуется в .xn--p1ai.

RewriteCond % ^old-site\.ru$ [NC]
RewriteRule ^(.*)$ http://www.site.ru/$1 [R=301,L]

И для домена в зоне РФ:

RewriteCond % ^xn-. \.xn--p1ai$ [NC]
RewriteRule ^(.*)$ http://www.site.ru/$1 [R=301,L]

RewriteCond % ^si-te\.ru$ [NC]
RewriteRule ^(.*)$ http://www.site.ru/si-te/ [R=301,L]

RewriteRule ^bitrix/ /bitrix/admin/ [L,R=301]
RewriteRule ^(.*)$ http://www.newsite.ru/new/ [L,R=301]

RewriteRule ^dir(.*)$ /new-file.php [L,R=301]

RewriteRule ^dir/no-file.html /no-file-new.html [L,R=301]
RewriteRule ^dir(.*)$ /all.php [L,R=301]

RedirectMatch 301 (.*)\.html$ http://www.new-site.ru$1.php

RewriteRule ^img/(.+)\.jpg$ http://img.domain.ru/$1.jpg [R=301,L]

Указывается порядок загрузки типов индексного файла, лежащих в корне каталога.

DirectoryIndex index.html index.php index.htm index.shtml

RewriteCond % ^[A-Z]<3,9>\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http://www.site.ru/ [R=301,L]

Для всех индексных страниц на сайте:
RewriteRule ^(.*)index\.php$ http://www.site.ru/$1 [R=301,L]

RewriteCond % ^test.site.ru$ [NC]
RewriteRule ^(.*)$ http://site.ru% [R=301,NC,L,QSA]

RewriteRule [^abc]/unique-file.html /unique-file.html [R=301,L]

Код позволяет поставить 301-редирект со всех папок вида http://site.ru/***/uniqe-file.html на один файл в корне /unique-file.html. Бывает полезен при переделке сайта и изменении ссылок.

RewriteRule ^testovyi/test/?$ /studio/news/detail.php?ID=230354&PAGEN_2=11 [NC,L]

Код позволяет создать копию страницы с относительным адресом /studio/news/detail.php?ID=230354&PAGEN_2=11 по адресу /testovyi/test/

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

RewriteCond % ^80$ [OR]
RewriteCond % =on
RewriteRule ^(.*)$ https://domain.ru/$1 [R=301,L]

Настройка позволяет отклонить спамный реферальный трафик с ряда ресурсов по заголовку HTTP_REFERER.

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

ErrorDocument 404 /404-for-me.php

! Для сайтов, на которых используется не сервер Apache, аналогичные 301-редиректы легко настраиваются с помощью PHP.

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

RewriteCond % (iPad|ipad|iphone|iPhone|ipod|iPod|android|midp|j2me|symbian|series\ 60|symbos|windows\ mobile|windows\ ce|ppc|smartphone|blackberry|mtk|bada|windows\ phone) [NC]
RewriteRule (.*) http://mobile.site.ru/ [L,R=301]

RewriteCond % !(accoona|ia_archiver|antabot|ask\ jeeves|baidu|dcpbot |eltaindexer|feedfetcher|gamespy|gigabot|googlebot |gsa-crawler|grub-client|gulper|slurp|mihalism|msnbot|worldindexer |ooyyo|pagebull|scooter|w3c_validator|jigsaw|webalta|yahoofeedseeker |yahoo!\ slurp|mmcrawler|yandexbot|yandeximages |yandexvideo|yandexmedia|yandexblogs|yandexaddurl|yandexfavicons |yandexdirect|yandexmetrika|yandexcatalog|yandexnews |yandeximageresizer) [NC]
RewriteRule (.*) http://no-search.site.ru/ [L,R=301]

Переадресация с www.site.ru/component/content/?view=featured на www.site.ru/
RewriteCond % ^view=featured$ [NC]
RewriteRule ^component/content/$ /? [R=301,L]

Переадресация с www.site.ru/index.php?idc=4&marea=6 на www.site.ru/
RewriteCond % ^idc=4&marea=6$ [NC]
RewriteRule ^index\.php$ /? [R=301,L]

. — Точка заменяет произвольный символ.
[abc] — обозначает перечень символов, совпадающих с буквами a, b, или с.
[^abc] — перечень символов, которые не входят в указанных диапазон. Совпадёт с любым символом, кроме a, b, или с.
* — означает, что предшествующий символ может повторяться (0 или более раз).
[abc]* — команда найдёт идущие подряд символы из заданного набора.
[^abc]* — с точностью до наоборот.

.* — заменяет абсолютно любой набор символов. «.*» — найдёт все подстроки между кавычками.
^ — начало строки (в том случае, если используется в начале выражения).
$ — обозначает конец строки.

\w — буква, цифра или подчёркивание _.
\d — заменяет любую цифру.
\D — заменяет любой символ, но не цифру.
2 — заменяет любую цифру.
[a-z] — любая буква от a до z (весь латинский набор символов) в нижнем регистре.
[A-Z] — любая буква от A до Z в ВЕРХНЕМ регистре.
[a-zA-Z] — любая буква от a до Z в любом регистре.
[a-Z] — то же самое.

Памятка по используемым символам и обозначениям

Строчка RewriteCond — условие выполнения правила RewriteRule. Если условие выполняется, то срабатывает редирект. Правила могут задаваться с помощью регулярных выражений.

Спецсимволы, используемые в правилах и их значения.

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

Флаги, задают доп. опции для используемого правила. Перечисляются в квадратных скобках через запятую, скажем [NC] или [R=301,L].

Источник

Что такое 301 редирект и как его настроить

Как установить на сервере редирект с http кодом 301. Смотреть фото Как установить на сервере редирект с http кодом 301. Смотреть картинку Как установить на сервере редирект с http кодом 301. Картинка про Как установить на сервере редирект с http кодом 301. Фото Как установить на сервере редирект с http кодом 301

При работе с веб-ресурсами возникают ситуации, когда происходит удаление, перенос или изменение url-адреса отдельных страниц или сайта целиком. При этом требуется сохранить индексацию в поисковых системах и перенаправить пользовательский трафик на новый адрес. Для решения этой задачи используется функция под названием 301 Redirect. Это один из инструментов SEO, который позволяет не только избежать ошибок при открытии отдельных страниц, но и добиться корректной работы ресурса. Правильные настройки редиректа дают дополнительную возможность получить синергетический эффект в поисковой оптимизации и увеличить количество органического трафика на релевантные страницы. Рассмотрим более подробно, как происходит настройка редиректа 301.

Что такое переадресация 301

Permanent Redirect 301 применяется с целью организации постоянной переадресации с неактуального доменного адреса или url отдельной страницы на рабочую версию. Редирект может понадобиться в связи с глобальным переносом сайта на другой домен, техническими изменениями в написании адреса, удалением страниц, необходимостью внутренней и внешней перелинковки. Один из вариантов использования перманентной переадресации – редирект с нескольких доменных имен, созданных в разных зонах, на один актуальный адрес. Грамотное использование редиректа позволяет перемещать контент без потерь в поисковой индексации, сохранить и даже увеличить прежний вес и позицию в выдаче.

Настроить код состояния HTTP 301 можно разными способами:

с помощью HTML и PHP;

через панель управления или плагины соответствующей CMS;

при помощи специальных скриптов (программ);

на уровне хостинг-провайдера;

Последний способ является наиболее простым и надежным. О нем чуть позже поговорим подробнее.

Альтернативные методы переадресации

В большинстве случаев постоянная переадресация является более правильным решением, чем временная. На практике это объясняется просто. Предположим, сайт сменил доменную зону, а затем еще и обзавелся защищенным протоколом https. При настройке временной переадресации в индексе Яндекса и Google по одним и тем же запросам появились три версии сайта с пропорциональным проседанием позиций в выдаче. После настройки редиректа 301 на приоритетный url произошло склеивание дублей, робот вернул сайт в топ выдачи.

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

Как установить на сервере редирект с http кодом 301. Смотреть фото Как установить на сервере редирект с http кодом 301. Смотреть картинку Как установить на сервере редирект с http кодом 301. Картинка про Как установить на сервере редирект с http кодом 301. Фото Как установить на сервере редирект с http кодом 301

В каких случаях используется постоянный редирект 301

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

Изменение написания url определенных страниц в целях SEO-продвижения, смены CMS или по иным причинам. Требуется настроить редирект с site.ru/1hdkr5 на site.ru/page_adress.

Перенос разделов на субдомены. Необходимо сменить адрес www.site.ru/example на example.site.ru.

Для аккумуляции трафика с адресов, купленных в разных доменных зонах, на один приоритетный ресурс.

Исключение дублирующихся страниц из индекса.

Склейка зеркал сайта – вариантов сайта с идентичным контентом, но разным написанием адресов: site.ru, www.site.ru, https://site1.ru и т.д. В этом случае выбирается один приоритетный домен и на него настраивается редирект со всех остальных зеркал.

Удаление ранее существовавшей страницы. В этом случае пользователи обычно видят ошибку 404. Большое количество таких сообщений негативно воспринимается как пользователями, так и поисковиками.

Для быстрого перехода пользователя на мобильную версию ресурса со смартфонов и планшетных устройств.

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

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

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

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

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

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

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

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

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

Найти файл можно через панель управления хостинга либо использовать FTP-клиент. При любом варианте нужно включить отображение скрытых файлов.

Для создания 301 редиректа перейдите в панель управления вашего сайта.

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

Перед тем как начать прописывать правила перенаправления, необходимо включить механизм преобразований (RewriteEngine) при помощи команды RewriteEngine On.

Хостинги применяют по умолчанию 302 или любой другой 3xx редирект. В связи с этим в правилах используются флаги. Рекомендуем дописывать в своих правилах [R=301,L].

Склейка зеркал сайта (www / без www)

Сайты http://name.site и http://www.name.site для поисковых систем являются разными. А по факту это разные адреса одного сайта.

Если произошла обратная ситуация и необходима переадресация с без «www» на «www», то в файл прописывается:

Редирект с http на https для всего сайта

Если данная конструкция не сработает, попробуйте другой вариант:

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

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

Постранично

Бывают случаи, когда необходимо создать редирект на https всех страниц, кроме одной. В этом случае используют постраничный редирект:

Для одной страницы

Для редиректа с http на https одной страницы (например page.php), в файл добавьте следующую конструкцию:

Редирект сайта с https на http

Если необходимо сделать 301 редирект всего сайта с https на http, в файл прописывается следующее:

Изменение домена

Редирект на страницу с другим url (без параметров)

Редирект для url (с параметрами)

Если адрес содержит параметр (например, http://name.site/articles.php?section=1, где параметром является «section=1» ), то прописывают следующую конструкцию:

Редирект с index.php на главную страницу

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

Редирект со страниц со слешем на без слеша (для всего сайта)

Или более короткий вариант:

Редирект со страниц без слеша на слеш (для всего сайта)

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

301 редирект с 404 Not Found

Код 404 Not Found (страница не найдена) присваивается удаленной или несуществующей странице на сайте. Создание постоянного перенаправления с таких страниц актуально для контентных сайтов и крупных интернет-магазинов, где страницы часто удаляются по естественным причинам. Тогда возникает потребность перенаправить посетителей на одну из главных страниц сайта, чтобы они не уходили с ресурса при виде ошибки.

301 редирект для страниц 404 Not Found сделать совсем не сложно. Например, этот код перенаправит со всех 404-страниц на главную:

Однако делать такие редиректы в массовом порядке не рекомендуется, так как это может испортить SEO-статистику всего ресурса.

Пример файла htaccess, после добавления в него редиректов:

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

обозначает перечень знаков, совпадающих с буквами a, b, или с

список символов вне указанного диапазона (кроме a, b, с)

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

команда найдет идущие подряд символы из заданного набора

приводит к противоположному эффекту

заменяет любой набор символов

ищет все подстроки между кавычками

начало строки (когда используется в начале выражения)

означает конец строки

цифра, буква или подчеркивание _

заменяет любую цифру

может заменить любой знак, кроме цифры

для замены любой цифры

для всех букв от a до z в нижнем регистре

для каждой буквы от A до Z в верхнем регистре

любая буква от a до Z во всех регистрах

Другие способы создания переадресации 301

Через PHP

Данный вариант подойдет тем, кто хорошо разбирается в web-программировании и PHP. Необходимо открыть файл index.php в корне CMS-движка и прописать там:

(в первой строке укажите старый url, а во второй — новый)

ASP-редирект

ASP.NET редирект

Найдите в корне своего сайта файл web.config и вставьте в секцию синтаксис:

ColdFusion редирект

JSP (Java) редирект

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

CGI-скрипт на PERL

Ruby on Rails

Редирект в Nginx

HTML-редирект

Этот способ подойдет для небольших статических сайтов, когда требуется настроить переадресацию для одной страницы. Для этого необходимо добавить специальный мета-тег внутри кода HTML. Пример записи редиректа на другой ресурс после 5-секундной задержки:

Если поставить значение 0 вместо 5, то переадресация на https://livepage.pro произойдет моментально.

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

Редирект 301 в панелях управления сервера

Большинство панелей управления сервера предоставляют возможность настройки переадресации с кодом 301. Рассмотрим варианты решения этой задачи на примере двух популярных ПУ для VDS.

Cpanel

Нужно перейти в блок «Домены» => «Перенаправления». В появившемся окне выполнить следующее:

В строке «Тип» выбрать «Постоянный 301».

В строке «https://www» из выпадающего списка выбрать домен сайта (например, example.ru).

В строке «Перенаправляет на» указать для домена адрес http://example.ru.

В блоке «Перенаправление www» поставить галочку напротив «Перенаправлять только с www».

Сохранить изменения кликом на «Добавить».

ISPmanager

Автоматическое создание переадресации

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Заключение

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

Источник

Как настроить 301 редирект в htaccess

С переадресацией (она же – «редирект») сталкивался каждый пользователь интернета. Достаточно просто выбрать в поисковой системе любой сайт из выдачи и поисковая система автоматически перенаправит Вас на сайт. В этой статье мы расскажем о том, какие виды переадресации существуют и как их настроить.

Основные операторы регулярных выражений

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

Спецсимволы:

Модификаторы:

Как настроить 301 редирект htaccess

Начнем с 301 редиректа в htaccess. Во-первых, он представляет из себя автоматическую переадресацию с одного адреса на другой. Он вполне может применяться в том случае, когда сайт переводится с протокола http на https, когда сайт перенастраивается с «полноразмерных» адресов на ЧПУ (т.е. было https://www.karcher.xyz/content/news/31-01-2017/razdatka, стало https://www.karcher.xyz/ razdatka), а также для «склеивания» страниц-дублей. Во-вторых, 301 редирект сообщает поисковым системам, что «ребята, имеющийся у вас адрес уже не работает, поэтому идите вон туда», а они такие «ОК, учтем». Таким образом, переадресация происходит безболезненно, без потери позиций и ссылочной массы.

Но что будет, если «Ой, да ну нафиг? Буду я еще с переадресациями заморачиваться, только время потеряю!»? Можно сделать и так, НО… история «старой» страницы будет утрачена, а «новая» будет ранжироваться «с нуля». Как следствие – потеря позиций и ссылочной массы (это в лучшем случае).

Варианты применения 301 редиректа:

и т.д., всех причин не перечислить.

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

Итак, Вы решили сменить домен. Сразу же даем готовое решение:

301 редирект при смене адреса страницы

Постраничный редирект (когда меняется адрес страницы) осуществляется с помощью приведенного ниже кода:

RewriteCond % ^www\.stokrat\.org$ [NC]

RewriteRule ^stranica/nastrojka-301-redirekta/$ https://www.stokrat.org/newpage/ [R=301,L]

Именно этот код используется при «переезде» страниц, например, на ЧПУ.

Настроить редирект с www на домен без www в htaccess

Упоминание www. в адресе домена уже давно не является актуальным. Тем не менее сайтов с www. полно. Склеивание доменов с www. и без должно производиться в строго обязательном порядке, т.к. поисковые системы воспринимают эти 2 домена как 2 разных сайта с разными тИЦ, PR, посещаемостью, ссылочной массой и всем остальным. Следовательно, один из них – оригинал, а второй – «самозванец» с «ворованным контентом». Чтобы этого не происходило – домены с www. и без необходимо «склеить» с помощью 301 редиректа. Код настройки приведен ниже.

Код редиректа с www на без www в htaccess выглядит так:

Теперь давайте разберемся с директивами.

RewriteEngine on/off – если выражаться простым человеческим языком – она служит выключателем 301 редиректа.

RewriteCond — в этой директиве прописываются условия для «срабатывания» следующей директивы.

RewriteRule — директива преобразования одного адреса в другой.

Настроить 301 редирект с http на https через htaccess

А вот код на обратный редирект с https на http. Как видите, отличие всего в 1 символ:

Редирект со страниц index.php, index.html

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

Поскольку в подзаголовке упомянуты index.php и index.html – Вы уже догадались, что с помощью 301 редиректа мы будем избавляться от дублей главной страницы:

RewriteRule ^index\.php$ http://site.ru/ [L,R=301]

Однако, если у главной страницы есть дубль вида site.ru/index.php, вполне вероятно, что и у остальных страниц есть дубли вида site.ru/index.php/page.html (при оригинальном адресе site.ru/page.html). Это плохо, поэтому также требуется настройка 301 редиректа с помощью приведенного ниже кода:

RewriteRule ^index\.php/(.*)$ /$1 [R=301,L]

Нередки случаи, когда у главной страницы есть дубль вида

site.ru/main.html, для которого так же необходимо прописывать 301 переадресацию на site.ru:

Либо альтернативный вариант:

А вот теперь рассмотрим обратную ситуацию – когда Вы хотите склеить дубли, настроив переадресацию с site.ru на site.ru/main.html. Сделать это можно с помощью приведенного ниже кода.

RewriteRule ^(.*)/$ /$1.html [R=301,L]

RewriteRule ^(.*)\.html$ /$1 [R,L]

Редиректы с адресов со слэшами в конце и без них

RewriteRule ^(.+)/$ /$1 [R=301,L]

Причем абсолютно не важно, будет ли у Вас после редиректа слэш в конце адреса или нет. Главное – чтоб эти адреса были склеены с помощью 301 редиректа.

Редирект на мобильную версию сайта

Разумеется, если Ваш сайт работает на движке WordPress или Joomla, то настроить редирект на мобильную версию сайта можно с помощью плагинов.

Однако, Google является сторонником адаптивного дизайна. Следовательно, выделять отдельный домен/поддомен для мобильной версии не нужно. Т.е. в Google утверждают, что «если есть возможность обойтись без редиректов на мобильную версию – именно так и нужно поступать».

Но что делать, если без таких редиректов все-таки не обойтись?

RewriteCond % «text\/vnd\.wap\.wml|application\/vnd\.wap\.xhtml\+xml» [NC]

Настройка мобильного редиректа через PHP

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

Из этого кода становится очевидно, что можно распознать не только компьютер/смартфон/планшет, но и его операционную систему.

JavaScript редирект

С помощью приведенного ниже кода происходит переадресация на мобильный поддомен. Основанием для переадресации служит разрешение экрана – до 480 пикселей в ширину. Именно в ширину, не в высоту.

Однако, это не совсем верный способ, т.к. столь низкое разрешение далеко не у всех смартфонов, даже бюджетных. Гораздо правильнее заменить в коде число 480 на 720, большинство современных смартфонов имеет разрешение не менее, чем 1280 пикселей в высоту и 720 в ширину.

302 редирект

302 – это временная переадресация (по сути, это единственное отличие от 301 редиректа). Но где она может применяться?

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

Т.е. есть постоянный адрес (например, https://inet-market.xyz/sales/) и сегодня с него происходит редирект на страницу https://inet-market.xyz/sales/december/, т.е. на страницу с декабрьскими акциями. Ну а через несколько дней 302 redirect перенастраивается на https://inet-market.xyz/sales/new-year/, т.е. на страницу с новогодними акциями.

И в таких ситуациях 302 редирект не только уместен, но и является самым правильным решением.

Как установить на сервере редирект с http кодом 301. Смотреть фото Как установить на сервере редирект с http кодом 301. Смотреть картинку Как установить на сервере редирект с http кодом 301. Картинка про Как установить на сервере редирект с http кодом 301. Фото Как установить на сервере редирект с http кодом 301

Основные причины применения 302 редиректа:

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

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

Проверить 301 редирект крайне просто. Вводим в адресную строку старый адрес и смотрим, что будет происходить. Если редирект настроен правильно – адрес в строке изменится. Если нет – значит переадресация настроена неверно.

ВАЖНО! Перед тем как делать выводы о том, что «что-то тут не так», почистите кэш браузера и повторите попытку.

Другой способ – воспользоваться онлайн-сервисами по проверке кода ответа сервера. Например, http://4web.su/s_redirect/. Вводим имя домена и проверяем код ответа. Если редирект настроен правильно, то код ответа будет либо 301, либо 302 (в зависимости от того, какую именно переадресацию Вы настраивали). На некоторых сервисах (кстати, 4web.su – один из них) может отображаться еще и код, который сервер отдает уже после переадресации. Единственный допустимый код в этом случае – 200 ОК.

Как установить на сервере редирект с http кодом 301. Смотреть фото Как установить на сервере редирект с http кодом 301. Смотреть картинку Как установить на сервере редирект с http кодом 301. Картинка про Как установить на сервере редирект с http кодом 301. Фото Как установить на сервере редирект с http кодом 301

Если же вместо 200 ОК вылезает код 404 (как на приведенном ниже скриншоте) – значит редирект настроен неправильно.

Как установить на сервере редирект с http кодом 301. Смотреть фото Как установить на сервере редирект с http кодом 301. Смотреть картинку Как установить на сервере редирект с http кодом 301. Картинка про Как установить на сервере редирект с http кодом 301. Фото Как установить на сервере редирект с http кодом 301

PHP редирект

Во-первых, PHP-это сервероориентированный язык.

Во-вторых, редирект будет происходить на сервере, а не в браузере пользователя.

В-третьих, каждой страничке, на которую будет производиться редирект, присваивается свой уникальный REFERER, а это значит, что скрыть страницу-источник не получится.

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

В зависимости от того, 301 редирект Вы хотите настроить, или 302. С помощью PHP обычно настраивается 302 редирект.

Простейший javascript-редирект

Основной минус данного способа в том, что не у всех (но у большинства) пользователей включен в браузере JavaaScript. Если JavaScript в браузере отключен – редиректа не произойдет.

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

Оформляется редирект в либо в :

ВАЖНО. Данный код в любом случае сработает быстрее, чем код Яндекс.Метрики, а это значит, что Яндекс до редиректа посетителя не засчитает.

Настроить 301 редирект в WordPress

Ранее мы уже говорили, что в WordPress удобнее всего настраивать редиректы с помощью плагинов. О них и поговорим.

Плагин Redirection. Это самый популярный плагин для настройки редиректов. Он почти никогда не жаловался на «извините, у меня с новой версией движка несовместимость», а если и жаловался – то разработчики в считаные часы вносили в плагин все необходимые для совместимости изменения. Число скачиваний уже перевалило за несколько миллионов.

Число переадресаций, которые через него можно настроить, не ограничено. Плюс бонусом можно отслеживать статистику по настроенным с помощью этого плагина редиректам и даже отслеживать ошибочные перенаправления (когда после переадресации отдается код не 200 ОК, а 404 Not Found).

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

Как установить на сервере редирект с http кодом 301. Смотреть фото Как установить на сервере редирект с http кодом 301. Смотреть картинку Как установить на сервере редирект с http кодом 301. Картинка про Как установить на сервере редирект с http кодом 301. Фото Как установить на сервере редирект с http кодом 301

Как установить на сервере редирект с http кодом 301. Смотреть фото Как установить на сервере редирект с http кодом 301. Смотреть картинку Как установить на сервере редирект с http кодом 301. Картинка про Как установить на сервере редирект с http кодом 301. Фото Как установить на сервере редирект с http кодом 301

Как установить на сервере редирект с http кодом 301. Смотреть фото Как установить на сервере редирект с http кодом 301. Смотреть картинку Как установить на сервере редирект с http кодом 301. Картинка про Как установить на сервере редирект с http кодом 301. Фото Как установить на сервере редирект с http кодом 301

Не грех упомянуть Simple 301 Redirects, но он необходим исключительно для настройки 301 редиректа.

Как установить на сервере редирект с http кодом 301. Смотреть фото Как установить на сервере редирект с http кодом 301. Смотреть картинку Как установить на сервере редирект с http кодом 301. Картинка про Как установить на сервере редирект с http кодом 301. Фото Как установить на сервере редирект с http кодом 301

Настройка редиректов в Joomla

И сразу же конкретный пример, когда такое может произойти. Интернет-магазины на Joomla – это не редкость. И вот в магазин поступил новый смартфон, какой-нибудь Gopo Center C4. Менеджеры создают под него карточку товара, затем заказывается реклама и делается рассылка, а затем директор магазина говорит менеджеру «А почему в заголовке не указали, что он в черном и белом цвете? Исправить!», менеджер вносит исправления, вследствие чего адрес ссылки меняется. Итог – вся реклама и рассылка превращается в пустой слив бюджета, т.к. прошлая ссылка уже не работает. И вот тут есть 2 выхода – откорректировать адрес ссылки вручную (на сайте интернет-магазина, но это отдельная тема для разговора), либо настроить 301 редирект со старого адреса на новый.

Теперь о том, как решить эту проблему через 301 редирект.

1. Необходимо убедиться, что редирект-плагин включен.

Для этого в админке выбираем Расширения => Менеджер плагинов.

Как установить на сервере редирект с http кодом 301. Смотреть фото Как установить на сервере редирект с http кодом 301. Смотреть картинку Как установить на сервере редирект с http кодом 301. Картинка про Как установить на сервере редирект с http кодом 301. Фото Как установить на сервере редирект с http кодом 301

Ищем в списке установленных плагинов «Система – Перенаправление» и включаем (если он выключен).

Как установить на сервере редирект с http кодом 301. Смотреть фото Как установить на сервере редирект с http кодом 301. Смотреть картинку Как установить на сервере редирект с http кодом 301. Картинка про Как установить на сервере редирект с http кодом 301. Фото Как установить на сервере редирект с http кодом 301

2. Проверяем «плохие» адреса.

В верхнем меню переходим в Компоненты => Перенаправление, там будет список всех “плохих” URL вашего Joomla-сайта.

3. Настраиваем переадресацию.

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

Как установить на сервере редирект с http кодом 301. Смотреть фото Как установить на сервере редирект с http кодом 301. Смотреть картинку Как установить на сервере редирект с http кодом 301. Картинка про Как установить на сервере редирект с http кодом 301. Фото Как установить на сервере редирект с http кодом 301

Т.е. для решения данной задачи хватает стандартного плагина Joomla, который идет с движком «с завода».

Настройка редиректа на OpenCart

Формирование адресов на OpenCart – это очень больная тема. А чтобы Вам было проще понять, насколько она на этом движке большая, просто взгляните на то, какой вид имеет адрес главной страницы:

site.com/index.php/?route=common/home

И это вместо site.com

Почему разработчики так эту проблему не решили – не понятно. Видимо, в этих «хвостах» зашифрованы послания тем, кто пытается через тайну Вселенной постичь тайну сокровищ Майя. Но т.к. среди простых землян таких нет (или есть?), то проблема перекладывается с разработчиков движка на программистов сайта.

Решить проблему можно несколькими способами:

Способ 1. В папке templates/common найти файлы header.tpl и footer.tpl и произвести в них замену кода с на

Таким же (а именно – вторым) способом можно настроить редиректы со старых адресов категорий на новые. По умолчанию адреса ссылок в OpenCart выглядят примерно следующим образом:

site.com/index.php?path=83_94_113&route=product/category

Но что делать с динамическими адресами, которые из-за привязки к определенной секции имеют вид site.com/katalog?c=okna-pvkh?

RewriteCond % ^c=okna-pvkh$ [NC]

RewriteRule katalog http://site.com/? [R=301,L]

Примечания и ошибки

Теперь поговорим о том, как не допускать ошибок при настройке 301 редиректа:

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

Во-первых, «многоходовки», когда идет череда из нескольких 301 редиректов подряд. Гораздо правильнее настроить редирект сразу на «финишный» адрес.

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

В-третьих, редиректы «не туда». Т.е. если страница переехала с первого адреса на второй, а при настройке редиректа Вы ошибочно указываете адрес совершенно другой страницы.

В-четвертых, redirect на страницу, которая работает по каким-то причинам очень некорректно. Страница должна работать стабильно и отдавать либо код 200, либо код 404.

В-пятых, редирект файла robots.txt. Это запрещено правилами многих поисковых систем. Более того, многие допускают одну и ту же ошибку – когда настраивают htaccess редирект на https с http://site.xyz/robots.txt на https://site.xyz/robots.txt. Файл robots.txt должен быть доступен по обоим адресам без всяких переадресаций. Ровно то же самое касается и xml-карты сайта.

► Что такое 301 редирект?

► Что такое 302 редирект?

302 редирект – это временная переадресация (по сути, это единственное отличие от 301 редиректа).

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

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

Источник

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

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