Читаем мужчин ucp php redirect. Как сделать редирект. Все виды. Использование метатегов HTML для редиректа

Главная > Программы > Apache

301 редирект - корректная переадресация через htaccess и php header

Редирект 301 (301 Permanent Redirect) используется в нескольких случаях: при смене домена, при переносе страницы сайта, для склейки имени сайта с www и без него. Это важно для передачи Page Rank (PR) и сохранения поискового трафика.

Сам я столкнулся с его необходимостью, когда после переезда своего портала из зоны com, в ru обнаружил, что Google, Яндекс и другие поисковые системы, естественно не "забывают" старого сайта (отчасти еще и из-за того, что у меня была некорректно установлена своя страница, для обработки 404 ошибки, которая возвращала код ответа 200 OK). Более того, Google за полгода оставил для нового сайта PR=0, хотя для старого он сохранился PR=4.

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

301 редирект это наилучший метод сохранения ваших позиций в поисковых системах, когда вы переносите страницу или сайт. Код "301" интерпретируется как постоянное перемещение ("moved permanently").

  • Простой редирект (в файле.htaccess или httpd.conf для Apache): Redirect 301 / http://www.you.com/new.htm
    где:
    Redirect 301 - это инструкция, говорящая что страница перемещена
    / - означает, что все с верхнего уровня сайта, включая все подкаталоги, будет переадресовано
    http://www.you.com/new.htm - новая страница или сайт (не забывайте поставить последний "/", если переадресация идет на сайт).

    Чтобы переадресовать только страницу, сохранив PR старой страницы:
    Redirect 301 /old/old.htm http://www.you.com/new.htm
    где:
    /old/old.htm - путь и имя старой страницы

    Аналогичный синтаксис для переадресации сайта:
    Redirect Permanent / http://www.you.com/

    Пример переадресации каталога:
    Redirect Permanent /old-directory http://www.domain.com/new-directory/

    Например, зашедших в test переадресуем на www.test.com, остальных на enter.test.com (порядок следования записей важен):

    Redirect permanent /test http://www.test.com/ Redirect permanent / http://enter.test.com/

    Примечание: для моих целей (изменение домена) хватило первого варианта простого 301 редиректа.

  • Использование mod_rewrite (прописывается в файле.htaccess):

    Ставшая классической задача слияния имена сайта с www и без него, решается так:

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

    или альтернативный синтаксис:

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

    Обозначение означает: перенаправить клиента и отправить ему код статуса 301 (R=301) и сделать это правило последним (L).

    Редирект старого домена на новый:

    Options +FollowSymLinks RewriteEngine on RewriteRule (.*) http://www.newdomain.com/$1

    Например, если необходимо чтобы вместо rewrite.htm загружался файл rewrite.html, добавьте в.htaccess:

    RewriteEngine on RewriteBase / RewriteRule ^rewrite\.htm$ rewrite.html

    Для замены всех.htm файлов.html файлами:

    RewriteEngine on RewriteBase / RewriteRule ^(.*)\.htm$ $1.html
  • Редирект на PHP: Лучше указать HTTP/1.1, так как более старые не поддерживают виртуальный хостинг. Не забудьте, что до вызова header, ничего не должно выводиться (например, echo или print). Поэтому этот код лучше ставить в начало php-скрипта. Более полный вариант php редиректа с сохранением передаваемой страницы и параметров вызова:
  • Редирект на ASP
  • Редирект на ASP.NET private void Page_Load(object sender, System.EventArgs e) { Response.Status = "301 Moved Permanently"; Response.AddHeader("Location","http://www.new-url.com"); }
  • Редирект на ColdFusion
  • Редирект с помощью meta refresh

    где 0 - задержка переадресации в секундах, newdomain.com -страница, куда переадресуем. Некоторые старые браузеры не поддерживают meta refresh со значением 0, для совместимости можно установить ненулевой значение, хотя, на мой взгляд это уже не актуально. Такой редирект не сможет склеить ваши сайты (с www и без) и передать PR, так как игнорируется поисковыми системами. Он возвращает код 200 OK, что соответствует обычной странице. Эта техника популярна у спамеров, поэтому ее стоит применять только для страниц, которые не будут индексироваться.

  • Редирект с помощью JavaScript

    Варианты переадресации на JavaScript чаще реализуются с использованием функции setTimeout("функция", задержка).

    Например, автоматически сделать Click на кнопке "Submit" формы "searchform" через 0.1 сек после загрузки кода:

    setTimeout("document.forms["searchform"].Submit.click()", 100);

    На кнопку "Submit" можно повесить любое действие, например, открыть новый url в этом окне. Кстати такое редиректы чаще встречаются при организации Дорвеев (DorWay) - браузер Пользователя будет переадресован на другую страницу, а поисковый робот, который "не понимает" JavaScript, будет индексировать эту страницу, недоступную пользователю. На ней дорвейщики размещают текст, напичканный "нужными" ключевыми словами.

    Чтобы просто переадресовать на другую страницу можно вставить после один из вариантов кода на JavaScript:

    • location="http://www.newdomain.com";
    • document.location.href="http://www.newdomain.com";
    • window.location.reload("http://www.newdomain.com");
    • document.location.replace("http://www.newdomain.com");
    В последнем случае уже нельзя будет вернуться на страницу выполнившую переадресацию, так как ее адрес стирается из history, что нередко и нужною. Если нужна задержка по времени, можно оформить location="http://www.newdomain.com"; в виде функции и вставить ее в setTimeout("функция()", задержка_в_мсек); Редирект на JavaScrupt не является 301 редиректом и не передаст PR страницы, не сможет обеспечить ее склейку.
  • Отметим дополнительно некоторые особенности редиректов:
    • Методы редиректа с.htaccess работают только на Linux серверах, имеющих Apache с включенным модулем Mod-Rewrite.
    • Использование.htaccess создает дополнительную нагрузку на сервер Apache, более эффективно прописывать те же команды в его конфигурационном файле hpptd.conf, но, как правило, к нему нет доступа у вебмастера.
    • 301 редирект, позволяет сберечь трафик и передать PR страницы для поисковых систем (для Google точно).
    • процесс склейки и передачи PR занимает длительное времени - до нескольких месяцев и также зависит от поисковой системы, поэтому не удаляйте старую страницу или сайт, пока не произойдет окончательный перенос.
    • некоторые поисковые системы требуют для склейки сайтов дополнительных настроек, например, для Яндекса нужно дополнительно прописывать robots.txt

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

    Код состояния HTTP (англ. HTTP status code) со статусом 301 Moved Permanently (Перемещено окончательно) свидетельствует о том, что запрошенный документ был окончательно перенесен на новый URI, указанный в поле Location заголовка.

    Для чего это нужно?

    В первую очередь, при изменении доменного имени сайта, необходимо оповестить поисковые системы о смене адреса сайта. Во-вторых, для склейки имени сайта с www и без него. В-третьих для быстрой передачи Page Rank на новый сайт.

    PHP

    Способ первый

    Способ второй

    Perl

    Способ первый

    $cgi = new CGI; print $cgi->redirect("http://www.example.com/");

    Способ второй

    #!/usr/bin/perl -w use strict; print "Status: 301 Moved Permanently\n"; print "Location: http://www.example.com/\n\n"; exit;

    ASP.NET

    Способ первый

    private void Page_Load(object sender, System.EventArgs e) { Response.Status = "301 Moved Permanently"; Response.AddHeader("Location","http://www.example.com"); }

    Способ второй (с версии 4.0)

    RedirectPermanent("http://www.example.com");

    ASP Ruby on Rails def do_something headers["Status"] = "301 Moved Permanently" redirect_to "http://www.example.com/" end ColdFusion Java (JSP) Веб-сервер Apache (.htaccess)

    Способ первый (mod_alias, Redirect)

    Redirect 301 / http://www.example.com

    Способ второй (mod_alias, RedirectPermanent)

    RedirectPermanent / http://www.example.com

    Способ третий (mod_alias, Redirect permanent)

    Redirect permanent / http://www.example.com

    Способ четвертый (mod_alias, RedirectMatch)

    RedirectMatch 301 ^(.*)$ http://www.example.com/

    Способ пятый (mod_rewrite)

    Options +FollowSymLinks RewriteEngine On RewriteBase / RewriteRule ^(.*)$ http://www.example.com/$1

    Типы редиректов

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

    Редирект через htaccess - самый популярный, и довольно простой способ. Чтобы его сделать, вам понадобится создать в папке сайта файл с названием.htaccess (обратите внимание, что название файла начинается с точки, это не опечатка). Если вы используете CMS WordPress или Joomla, то скорее всего этот файл у вас уже есть, в этом случае вам нужно будет просто отредактировать его.
    Читайте ниже чтобы узнать какие именно инструкции в нем нужно прописать, чтобы создать перенаправление.

    Редирект при помощи PHP - подойдет в том случае, если вы разбираетесь в PHP и знаете структуру своего сайта. Этот вариант подойдет вам, если ваш сайт написан не на CMS. В ином случае лучше используйте редирект через htaccess.

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

    Редирект при помощи JavaScript - этот способ подойдет также в том случае, если у вас простой сайт, либо если нужно сделать редирект для одной - двух страниц, либо для всего сайта в целом.

    Редирект при помощи.htaccess файла

    Инструкции, которые вы увидите ниже, нужно прописать в файл.htaccess в самое начало.

  • Редирект всего сайта (всех страниц) на другой сайт

    Redirect / http://new-site.ru/

    В этом примере, перенаправление будет происходить на сайт new-site.ru

  • Редирект одной страницы на другую

    Redirect /page-1.html /page-2.html

    В этом примере, перенаправление будет происходить со страницы page-1.html на страницу page-2.html. Обе страницы должны располагаться на одном домене.
    Этот вариант подходит для замены старых страниц сайта на новые.

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

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

    В этом примере, посетители будут перенаправляться с http://www.example.ru на http://example.ru.

  • 310 редирект с одной страницы на другую

    Redirect 301 /blog/page-1.html http://example.com/page-2.htm

    В этом примере, посетители будут перенаправляться со страницы blog/page-1.html на example.com/page-2.htm .

  • Редирект ошибки 404

    ErrorDocument 404 /index.html

    Пропишите эту строку в.htaccess файле, и тогда все посетители, которым встретится ошибка 404, будут перенаправлены на index.html .

  • Редирект с HTTP на HTTPS

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

    Пропишите эту строку в.htaccess файле, и тогда все посетители вошедшие на сайт по протоколу HTTP будут перенаправляться на защищенный протокол HTTPS.

    Если вы прописываете редирект для WordPress , то обратите внимание на то, что в файле уже есть строка RewriteEngine On. Поэтому сразу под ней вам нужно добавить такие строки

    RewriteCond %{SERVER_PORT} 80
    RewriteRule ^(.*)$ https://www.domain.com/$1

  • PHP редирект

    В PHP редирект делается так: сервер отправляет заголовки headers браузеру посетителя, и тот переходит по нужному адресу автоматически.
    Стоит отметить важный момент, отправлять заголовки можно только до вывода другой информации. То есть они должны отправляться до вывода любой другой информации через echo и до отправки кук.

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

    В этом примере, перенаправление будет происходить на сайт http://example.com

  • Здесь перенаправление будет происходить на http://example.com/page.html

  • Редирект определенной страницы на страницу другого сайта

    Здесь если посетитель сайта зайдет на страницу blog/post-1.html то он будет перенаправлен на http://example.com/page.html

  • HTML редирект

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

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

    В этом примере, перенаправление будет происходить на сайт https://сайт с задержкой в 5 секунд. Если установить значение задержки вместо 5 в 0, то посетитель будет перенаправляться на другой сайт моментально.

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

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

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

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

    • ^ — ограничение слева (начало строки);
    • $ — ограничение справа (конец строки);
    • . — любой символ;
    • () — переменная;
    • \ — экранирование (символ после \ считается обычным, а не спецсимволом);
    • — диапазон значений;
    • ! — спецсимвол отрицания.

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

    • ? — символ повторяется 0 или 1 раз;
    • + — 1 и более символов (до 65536);
    • * — 0 и более символов (до 65536).
    Как настроить 301 редирект htaccess

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

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

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

    • Склейка доменов;
    • Переезд сайта на другой адрес (может пригодиться при попадании сайта под какие-либо фильтры);
    • Для увеличения показателей тИЦ, PR и увеличения трафика при покупке другого домена (настраивается редирект на ресурс, который нуждается в поднятии тИЦ и PR);
    • При смене движка сайта (в этом случае настройка 301 редиректов строго обязательна, в противном случае гарантирована полная потеря трафика);
    • при переезде с http на https;
    • склейка «дублей»

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

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

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

    • переделываем robots.txt на старом домене. Готовый текст файла:

    User-agent: Yandex

    Host: newsite.com

    • настраиваем 301 редирект для всех страниц сайта (кроме файла robots.txt) с помощью приведенного ниже кода:

    RewriteCond %{REQUEST_FILENAME} robots.txt$

    RewriteRule ^([^/]+) $1 [L]

    RewriteCond %{HTTP_HOST} !^www\.site\.com

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

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

    RewriteEngine On

    RewriteCond %{HTTP_HOST} ^www\.stokrat\.org$

    RewriteRule ^stranica/nastrojka-301-redirekta/$ https://www.сайт/newpage/

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

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

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

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

    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^www.site.ru$

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

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

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

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

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

    Переезд с http на https многие считают «современным трендом». Однако, на сегодняшний день данная мера является обязательной (хотя формально она таковой не является). И вот настал тот час, когда Вы получили SSL-сертификат, Ваш сайт уже работает и по http и по https. Все что осталось настроить в файле.htaccess 301 редирект с http на https версии страниц сайта. Код для настройки приведен ниже.

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

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

    RewriteCond %{SERVER_PORT} !^443$

    RewriteRule ^(.*)$ http://site.ru/$1

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

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

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

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

    RewriteRule ^index\.php/(.*)$ /$1

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

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

    RewriteEngine On

    RewriteCond %{THE_REQUEST} ^{3,9}\ /main\.html\ HTTP/

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

    Redirect 301 /main.html HYPERLINK "http://site.ru/" http :// site . ru /

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

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

    RewriteRule .* %1.html

    RewriteRule ^(.*)/$ /$1.html

    Ну а если Вам важно, чтобы адреса всех внутренних страниц отображались без.html на конце, то redirect настраивается вот таким кодом:

    RewriteCond %{REQUEST_URI} \.html$

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

    Теперь о том как сделать редирект со страницы на страницу а именно с.htm на страницы.html. Для настройки такой переадресации достаточно добавить в.htaccess следующий код:

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

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

    Для начала рассмотрим еще один вид дублей страниц - страницы вида http://site.xyz/page и http://site.xyz/page/ - кроме слэша в конце, они ничем не отличаются. Настраивать redirect можно и с первой на вторую, и со второй на первую. Рассмотрим оба варианта:

    Редирект с http://site.xyz/page на http://site.xyz/page/:

    RewriteCond %{REQUEST_FILENAME} !-f

    RewriteCond %{REQUEST_URI} !\..+$

    RewriteCond %{REQUEST_URI} !/$

    RewriteRule (.*) http://www.site.ru/$1/

    Redirect с http://site.xyz/page/ на http://site.xyz/page:

    RewriteCond %{REQUEST_FILENAME} !-d

    RewriteCond %{REQUEST_URI} ^(.+)/$

    RewriteRule ^(.+)/$ /$1

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

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

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

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

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

    Можно настроить редирект через файл.htaccess

    RewriteEngine On

    RewriteCond %{HTTP_ACCEPT} "text\/vnd\.wap\.wml|application\/vnd\.wap\.xhtml\+xml"

    RewriteCond %{REQUEST_URI} ^/$

    RewriteRule ^ http://m.domain.com%{REQUEST_URI}

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

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

    $detect = new Mobile_Detect;

    if ($detect->isMobile()) {// код}

    if ($detect->isTablet()) {// код}

    if ($detect->isiOS()) {// код}

    if ($detect->isAndroidOS()) {// код}

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

    JavaScript редирект

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

  • if (screen.width на

    Способ 2. Настройка редиректа на site.com через.htaccess, вставив вот этот код:

    RewriteCond %{QUERY_STRING} ^route=common/home$

    RewriteRule ^index\.php$ http://site.com/?

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

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

    На такие ссылки смотреть очень больно, причем в прямом смысле, т.к. глаза реально начинают болеть при виде таких адресов. В том же.htaccess можно настроить редирект на «человеческие» адреса вида site.com/category с помощью такого кода:

    RewriteCond %{QUERY_STRING} ^path=83_94_113&route=product/category$

    RewriteRule ^index\.php$ http://site.com/new-category?

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

    Программисты довольно долго искали решение. «Методом тыка» (точнее - проб и ошибок) решение было найдено. В данном случае происходит редирект на главную страницу сайта:

    RewriteCond %{QUERY_STRING} ^c=okna-pvkh$

    RewriteRule katalog http://site.com/?

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

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

    • Нельзя нарушать последовательность правил переадресации. После настройки редиректа необходимо убедиться, что настройка не дала каких-либо «побочных эффектов». Если нарушить последовательность правил, то ранее настроенные редиректы могут либо прекратить функционировать, либо функционировать неправильно. Противоречий в правилах быть не должно.
    • Не стесняйтесь пользоваться официальными мануалами, т.к. у 301 редиректа из-за непростого синтаксиса есть множество особенностей. Упустить какой-то нюанс при настройке - проще простого.
    • После очередных «допиливаний» ВСЕГДА проводите полную проверку работоспособности тех правил, которые были внедрены ранее. Настройка без проверки - это не настройка даже «для галочки». Один лишний символ может «обвалить» работу всего сайта, либо заставить его работать неправильно. За другими программистами нам уже не раз приходилось исправлять работу сайта, когда с адреса site.com/oldpage происходит 301 редирект на site.com/newpage , а затем с помощью того же 301 редиректа происходит переадресация обратно на site.com/oldpage и далее «по кругу».

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

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

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

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

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

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