301 редирект убрать параметры из url. Редирект всех файлов в папке на заданный файл

И снова здравствуйте!

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

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

А теперь обо всем по порядку. Что такое 301 редирект? Это обычное перенаправление посетителя на другую страницу или домен (о том, что такое домен и как его зарегистрировать, читайте ). Сразу скажу, в этой статье я не буду рассматривать различные скрипты и сложные коды, я лишь покажу несколько простеньких вариантов перенаправления, которые любому веб-мастеру будет знать более чем достаточно.

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

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

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

Если вдруг в корневом каталоге вашего сайта не окажется данного файла, создайте его самостоятельно. Самый простой способ создания файла.htaccess, воспользоваться FTP — клиентом FileZilla (о нем я писал ):

Для этого перейдите в корневой каталог своего блога, нажмите в пустом поле правую кнопку мыши/Создать новый файл/Введите имя файла/.htaccess/ОК. После этого файл будет доступен для редактирования. Открыть его можно любым текстовым редактором, например .

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

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

В каких случаях может понадобиться 301 редирект?

Начнем с самого главного!

Вообще, каждый ресурс в интернете должен иметь 301 редирект. И самым распространенным случаем, когда он просто необходим, является перенаправление с домена, имеющего приставку WWW на домен без нее или наоборот (www еще называют префиксом). Сейчас вкратце поясню, почему так происходит, чтобы каждый понимал, о чем идет речь.

Дело в том, что у любого ресурса в сети, один из вариантов доменного имени (с www или без www) должен быть главным. Вот простой пример относительно моего блога. Главным его доменом является http://сайт , а www.сайт — является его зеркалом. Главное зеркало блога, прописывается в файле robots.txt для Яндекса в виде директивы Host.

Если у вас нет файла robots.txt, обязательно изучите вот , там я все подробно расписал. Robots.txt в обязательном порядке должен присутствовать на каждом ресурсе. Иначе блог обречен на неудачу! Помимо robots.txt, вам необходимо указать главное зеркало сайта в Яндекс.Вебмастер.

Но так как в robots.txt оно уже указано, то я вам рекомендую оставить все на усмотрение робота. Для этого перейдите во вкладку «Настройки индексирования/Главное зеркало» и поставьте кругляшек напротив пункта «На усмотрение робота»:

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

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

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

Что касается приставки www, то она давным-давно должна была отмереть. Но так как в сети до сих пор существует множество ресурсов с префиксом www, то она имеет место быть. Для поисковых систем http://сайт и www.сайт это два абсолютно разных адреса! Да и пользователи частенько в строку браузера вбивают адрес ресурса именно с www, поэтому отмирать ей пока рановато. Исходя из этого, настройки зеркала, просто необходимы!

Последствия от неверной настройки зеркала

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

1. Все внешние ссылки будут распределяться между адресами с www и без www, в зависимости от того, как на вас будут ссылаться сторонние ресурсы или пользователи. Получается, что ваш блог будет лишен части ссылок, что отрицательно скажется на его продвижении и посещаемости. Но это не самое страшное!

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

Естественно, вы об этом даже и не догадываетесь и продолжаете развивать свой ресурс. Со временем он обрастет уникальным контентом, естественными ссылками и комментариями. Дела идут в гору, ну как тут не радоваться? Но вот беда! Поисковые системы, наблюдая за сайтом без приставки www, поставили на нем клеймо, за не уникальность! В итоге он перестанет индексироваться, а со временем полностью выпадет из индекса!

Вот это будет страшно и очень обидно! И чтобы избежать таких печальных ситуаций и был придуман 301 редирект.

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

Как настроить 301 редирект в этом случае? Все очень просто. Открываем файл.htaccess и копируем в него представленный ниже код.

Перенаправление с www на без www:

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

и наоборот:

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

Обратите внимание, что вместо vashdomen, в обоих случаях нужно указать доменное имя своего блога!

Сохраните файл.htaccess и переместите его обратно в корневой каталог с заменой старого файла. Теперь, как бы пользователь не вбивал адрес вашего блога в строку браузера (хоть сайт , хоть www.сайт , хоть http://www.сайт ), его в любом случае перенаправит на главную страницу.

Переезд с одного домена на другой

Аналогичной схемой редиректа 301, приведенной выше, можно воспользоваться при переезде с одного домена на другой. Но все же для наглядности приведу пример. Вы переезжаете с домена sait-1.ru на домен sait-2.com . В этом случае прописываем в файле.htaccess следующее:

RewriteEngine On RewriteCond %{HTTP_HOST} sait-1.ru RewriteRule (.*) http://sait-2.com/$1

Редирект при изменении ЧПУ ссылок

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

Приведу простой пример. Вы решили изменить название страницы. Старое имя страницы имело вид obo-mne.html , новое имя ob-avtore.html . В этом случае вам нужно будет прописать в файле.htaccess следующую конструкцию:

Redirect 301 obo-mne.html http://www.vashdomen.ru/ob-avtore.html

Редирект при изменение расширения файла

Снова пример. Вам потребовалось изменить расширение файла stranica.html на stranica.php . Аналогично предыдущему пункту, прописываем в системном файле следующую строку:

Redirect 301 stranica.html http://www.vashdomen.ru/stranica.php

Редирект для партнерских программ

Допустим, вы решили перенаправить пользователя на страницу с партнерской программой. Код партнерки выглядит следующим образом: http://www.partnerka.ru/?ref=35677. Увидев такую ссылку, большинство пользователей не будут по ней переходить, заранее зная о ваших намерениях.

Для того, чтобы ссылка приняла привлекательный вид, вам необходимо создать отдельную страницу, например dlya-partnerov.html, с которой и будет идти перенаправление пользователя на страницу с партнерской программой. Теперь останется разместить ссылку на страницу vashdomen.ru/dlya-partnerov.html, а в файле.htaccess прописать следующее:

Redirect 301 dlya-partnerov.html http://www.partnerka.ru/?ref=35677

Но лично я для таких целей предпочитаю пользоваться несложным скриптом, о котором рассказывал (способ №3).

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

Как вам статья? А вы используете 301 редирект? Возможно, вам известны более легкие способы перенаправления? Жду ваши комментарии!

- 2.2 out of 5 based on 9 votes

301 редирект (Permament Redirect) или 301 ошибка возвращается при обращении пользователя или поискового робота по определенному URL и указывает на то, что сайт или страница, к которому обращался пользователь, был перенесен на новый адрес и больше не располагается по данному адресу. При этом, поисковой бот или пользователь будут перенаправлены на новый URL-адрес.

В случае настройки 301 редиректа старый и новый адрес склеиваются между собой, такие показатели как ТИЦ и PageRank, страницы и сайта, а также ссылочный вес будут переданы новому URL.

В каких случаях может пригодится 301 редирект (PermamentRedirect)

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

1. При переносе сайта на другую CMS;

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

3. Если склеиваются домены без www с www. При этом также все показатели этих этих копий сайтов будут совмещаться.

4. В случае переноса страницы внутри сайта на новый URL

В Яндекс и Google редирект 301, как правило, передает:

  • Ссылочный вес
  • ТИЦ сайта и PR страниц

Однако есть вещи, которые редиректом не передаются на новый URL-адрес, к ним относятся:

  • Санкции, которые были наложены на домен сайта
  • Возраст(если был изменен домен). Тем не менее, если редирект был настроен в пределах одного доменного имени, с одной страницы на другую, то данный показатель передается.

Когда редирект будет установлен, пользователи будут перенаправляться со старого URL-адреса на новый. При последующем посещении об этом узнают поисковые роботы. Они получают сигнал, в котором указывается новый адрес страницы, теперь является основным. На него «перетекают» все основные показатели.

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

Настройка 301 редиректа в файле.htaccess при помощи директив

Возможность настройки 301 перенаправления именно через файл htaccess будет зависеть от того какой веб сервер используется на вашем виртуальном хостинге или виртуальном сервере. В большинстве случаев это веб сервер Apache и вот именно он и позволяет производить настройку редиректа через htaccess.

Единственным условием является наличие включенных модулей mod_alias и/или mod_rewrite в файле php.ini. Они включены на большинстве хостингов поэтому можете смело приступать к настройкам.

При использовании, примеров кода "vash-sait.ru" замените на доменное имя вашего сайта.

Редирект при помощи mod_rewrite и директивы RewriteRule

Чтобы использовать директиву RewriteRule на хостинге должен быть подключен модуль mod_rewrite и включена опция FollowSymLinks включена, а в файле httpd.conf. Многие не подозревают, но с данным модулем приходится сталкиваться чаще, чем можно себе представить, например при использовании ЧПУ ссылок в CMS Joomla или WordPress.

Для настройки перенаправлений в файле htaccess, вам могут пригодится следующие операторы регулярных выражений:

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

1. Перенаправление домена с www на без-www

Очень часто 301 редирект используется, для склеивания адресов сайта с www и без них. Раньше поисковые системы воспринимали это как совершенно разные сайты, сейчас они научились определять зеркала сайта, но лучше указать им на правильное зеркало, чтобы не было путаницы ни у вас ни у них.

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

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

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

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

RewriteEngine On RewriteCond %{HTTP_HOST} ^www.vash-sait\.ru$ RewriteRule ^(.*)$ http://vash-sait.ru/$1

2. Редирект домена без www на домен с www.

RewriteEngine On RewriteCond %{HTTP_HOST} ^vash-sait\.ru$ RewriteRule ^(.*)$ http://www.vash-sait.ru/$1

Или, по типу первого, альтернативный вариант

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

3. Перенаправление страницы с ЧПУ URL -ом на другую страницу с ЧПУ URL -ом

Сегодня многие CMS позволяют использовать ЧПУ ссылки и часто в виду определенных обстоятельств приходится менять один адрес страницы на другой. Ниже приведен вариант редиректа страницы http://vash-sait.ru/optimizatsiya-stranitsy.html на страницу http://vash-sait.ru/seo-optimizatsiya-stranitsy.html.

RewriteEngine On RewriteRule ^(.*)optimizatsiya-stranitsy.html$ http://vash-sait.ru/seo-optimizatsiya-stranitsy.html

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

В некоторых случаях требуется сменить один домен сайта на другой. В таком случае нужно установить 301 перенаправление со старого домена на новый. Прописать представленный ниже код нужно в файле.htaccess старого сайта.

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

В приведенном примере старый домен с www и без www будет перенаправлен на новый домен без www.

5. Редирект домена алиаса на основной домен

Иногда для сайта используется не один, а несколько доменов т. е. используются так называемые алиасы или синонимы домена. Для этого домены могут регистрироваться в нескольких зонах vash-sait.ru, vash-sait.com и прилинковываться к одной директории сайта на хостинге. В этом случае будут 2 или более точных копии сайта с одним и тем же фалом.htaccess.

И так как это очень плохо с позиции SEO оптимизации, то необходимо выбрать какой то основной домен и сделать на его редирект. Например если основной домен vash-sait.ru, то сделать, на него редирект с vash-sait.com и www.vash-sait.com можно следующим образом:

RewriteEngine On RewriteCond %{HTTP_HOST} ^vash-sait.com$ RewriteCond %{HTTP_HOST} ^www.vash-sait.com$ RewriteCond %{REQUEST_URI} !^/robots.* RewriteRule ^(.*)$ http://vash-sait.ru/$1

6. Редирект страниц с расширением.htm на страницы с раcширением.html

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

RewriteEngine on RewriteBase / RewriteRule ^(.*)\.htm$ $1.html

7. Редирект страницы vash-sait.ru/index.php на vash-sait.ru

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

RewriteEngine On RewriteCond %{THE_REQUEST} ^{3,9}\ /index\.php\ HTTP/ RewriteRule ^index\.php$ http://vash-sait.ru/

Если нужно склеить дубли вида vash-sait.ru/home.html на vash-sait.ru

RewriteEngine On RewriteCond %{THE_REQUEST} ^{3,9}\ /home\.html\ HTTP/ RewriteRule ^home\.html$ http://vash-sait.ru/

8. Редирект URL -ла с параметром на любую другую страницу сайта.

Если URL -лы страниц вашего сайта содержат параметры, то при необходимости можно произвести редирект страницы с определенным параметром на любую другую страницу. Например страницы http://vash-sait.ru/index.php?section=1 на с страницу http://vash-sait.ru/index.php?section=2 Параметр в URL идет, как правило, после "?" в данном случае это section=1, сам код будет таким:

RewriteEngine On RewriteCond %{QUERY_STRING} section=1 RewriteRule ^index.php http://vash-sait.ru/index.php?section=2

Кроме этого URL с параметром можно перенаправить на главную страницу сайта следующим образом:

RewriteEngine On RewriteCond %{QUERY_STRING} section=1 RewriteRule ^index.php http://vash-sait.ru/?

Редирект при помощи директив Redirect или RedirectPermanent модуля mod_alias

Директива Redirect осуществляет простой редирект посетителя и поискового робота на новый URL.

Синтаксис данной директивы следующий: Redirect URL-path URL.

Условные обозначения:

  • URL – новый адрес веб-документа или страницы
  • URL-path – старый адрес запрашиваемого документа
  • Status – код возврата, однако является необязательным полем и может отсутствовать. Допустимыми значениями являются: 301 – постоянный перенос, 302 – временный перенос, 410 или gone – удален, 303 или seeother – смотрите другой.

Прописывается директива все в том же файле.htaccess.

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

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

Redirect 301 /category/staraya-stranitsa.html http://vash-sait.ru/category/novaya-stranitsa.html

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

Для этого в файле.htaccess старого домена пропишите следующее:

Redirect 301 / http://vash-sait.ru

3. Переадресация каталога

Redirect 301 /category http://vash-sait.ru/novaya-category/

Redirect permanent - это деректива оворящая, что страница перемещена.

Синтаксис:

Redirect permanent URL-path URL

URL-path: локальная часть URL документа с которого должен быть произведен редирект.

URL: URL куда должен быть выполнен редирект.

Записывается все по аналогии с директивой Redirect, но код возврата указывать уже не нужно. Для редиректа одной страницы на другую записывается так:

Redirect permanent /staraya-stranitsa.html http://vash-sait.ru/novaya-stranitsa.html

301 редирект через скрипт путем передачи заголовков

Вся работа 301 перенаправления через скрипты PHP, ASP, JavaScript заключается в передаче клиенту, т. е. браузеру или поисковому роботу определенных заголовков:

HTTP/1.1 301 Moved Permanently Location: http://vash-sait.ru/category/novaya-stranitsa.html

Приведем примеры редиректа для разных скриптов

1. 301 редирект на PHP.

Этот код лучше всего помещать в самое начало скрипта PHP файла. Вместо http://vash-sait.ru/novaya-stranitsa.html нужно указать адрес страницы куда должен быть перенаправлен пользователь или поисковый бот.

6. Для CGI PERL

$q = new CGI; print $q->redirect(“http://vash-sait.ru/novaya-stranitsa.html”);

7. ColdFusion редирект

<.cfheader statuscode=“301” statustext=“Moved permanently”> <.cfheader name=“Location” value=“http://vash-sait.ru/novaya-stranitsa.html”>

1. Использовать описанные выше методы можно лишь в том случае, если ресурс расположен на Linux-сервере и использует Apache. При этом обязательно должны быть подключены модули mod_rewrite и mod_alias.

2. Вместо файла.htaccess есть еще один способ настройки 301 перенаправления - внесение изменений в файл hpptd.conf, это немного более эффективно так как использование файла.htaccess создает небольшую дополнительную нагрузку на сервер.

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

Рейтинг 2.28 (9 Голосов)

До тех пор, пока у вас есть доступ к директории своего сайта на сервере, такие действия не составят особого труда. Будем считать, что ваш сайт работает на веб-сервере Apache (как и большинство сайтов), потому давайте немного поговорим о технической части вопроса внедрения переадресации 301 в Apache.

Сначала немного теории

В терминах сайтов, редирект – это способ автоматической переадресации конечного пользователя с одного адреса URL на другой. В то время как с технической стороны существует несколько способов осуществления переадресации, для задач, связанных с поисковой оптимизацией (SEO), мы рекомендуем использование постоянным редиректом 301 HTTP.

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

Разница между 301 и 302 особенно важна при сканировании сайта поисковыми системами. Когда сканер поисковика обнаруживает ссылку на ваш сайт, адрес которого постоянно настроен на переадресацию, то веб-сервер взаимодействует со статусом кода 301, а затем переадресовывает пользователя на новый URL. Поисковые системы не только принимают перенаправление на новый URL, но и переносят значение показателей страницы со старого URL на новую страницу редиректа (это вторая особенность такого процесса, которая очень важна для SEO оптимизации, которую нельзя выполнить, используя 302).

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

Сравнение редирект 301 и канонический rel=”canonical”

Например:

Смысл тега rel=canonical в том, чтобы сообщить поисковой машине единый целый адрес контента страницы. Это очень полезно, когда сайт использует динамические переменные атрибутов для URL-ов. Динамические URL могут способствовать индексации нескольких версий URL для каждой отдельной страницы, что выражается в (а это поисковики просто ненавидят!)

Хотя использование тега с атрибутом rel=canonical и полезно для страницы сайта, но это не является надежной заменой переадресации 301. Здесь есть несколько причин:

Тег rel=canonical до сих пор рассматривается поисковыми машинами как полунамеки, а не как конкретные директивы к исполнению. Тогда как редирект 301 воспринимается как конкретная инструкция. И напоследок, в отличие от редиректа 301, которая может быть сконфигурирована в одном файле для всего сайта, код тега rel=canonical нужно будет вставить на каждой страничке.

Все это говорит нам, что использование тэгов rel=canonical может оказаться полезным при переадресации страниц блога (конечно, если у вас есть доступ к его коду и, чтобы вставить в страницы необходимые модульные теги). В конце концов, использование 301 может означать потерю изначальных страничек и связанных с ними комментариями, социальных связей, у которых есть свои собственные значения в SEO.

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

Как сделать редирект 301 в.htaccess?

На веб-сервере Apache редирект 301 можно выполнить через коды скрипта в одном из двух файлов с текстовой конфигурацией: или.htaccess (для директорий, представляющих отдельные сайты на сервере), или httpd.conf (в корневом каталоге инсталлятора Apache). Обычно используется способ с изменением конфигурации., потому рассмотрим его более подробно.

Первое, что нужно сделать – это открыть текстовый файл, который называется.htaccess . Его можно найти в директории вашего сайта на веб-сервере Apache. Убедитесь, что открыли его с помощью простейшего текстового редактора, такого как Notepad на компьютерах, работающих на Windows.

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

  • Включить модуль Apache mod_rewrite.
  • Включить ReWriteEngine в модуле mod_rewrite.

Чтобы сделать это, добавьте эти две строки кода:

Options +FollowSymLinks RewriteEngine on

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

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

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

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

Redirect 301 /staraja.html http://www..html

В файле. htaccess можно вставить любое количество строк переадресации.

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

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

RedirectMatch 301 ^/oldname/ http://www.сайт/newname/

Переадресация 301 доменного имени на другой URL

Если вы купили доменное имя с хорошей историей, то наверняка захотите увеличить посещаемость вашего сайта. Здесь можно использовать переадресацию 301 всего трафика такого доменного имени на ваш теперешний сайт. Используйте, как пример, следующий код:

RedirectMatch 301 ^(.*)$ http://www.сайт

Убедитесь, что вы создали такое перенаправление в файле. htaccess исходного сайта, с которого будете перенаправлять трафик, а не в целевом сайте!

Переадресация 301 для канонизации на другой URL

Так как поисковые машины индексируют URL-лы, то имея разные URL-лы, которые перенаправляют для индексации на страницы с одинаковым контентом, это может повлиять на значение PageRank. Безусловно, для оптимизации такое положение не самое лучшее! Суть в том, что если вы хотите присоединить PageRank к одному (каноническому) URL, то для оптимизации поиска нужно обратить внимание на контент страниц сайта.
Когда вы изучите лучшие примеры канонизации, вы захотите применить ее на своем сайте. Это означает, что вы должны учитывать все возможные альтернативы переадресации URL на канонический URL. Используйте следующий пример кода для главной страницы сайта:

RewriteCond %{HTTP_HOST} ^web-profy\.com RewriteRule ^(.*)$ http://www..(html|php|htm)\ HTTP/ RewriteRule ^(([^/]+/)*)(default|main|index)\.(html|php|htm)$ http://www.сайт/$1

Первый блок из двух строк перенаправляет URL-лы, у которых опущены префиксы «www.», на адрес домашней страницы, например, “www.xyz.com”..сайт/.

Второй блок кода перенаправляет URL-лы указанных страниц на те адреса, которые указаны по умолчанию. Такой код гарантирует, что любой URL домашней страницы, имеющий несколько вариантов своего написания и прямых ссылок, как default.htm или index.html, будут перенаправлены на каноническую страницу URL, такую как, http://сайт

Документирование и тестирование работы

# Redirect this entire domain, abc..*)$ http://www.сайт

Хорошее документирование и комментирование процессов всегда поможет вам (и тем, кто в дальнейшем будет заниматься сайтом) понять, какой код за что отвечает. Такая информация будет полезна при поиске проблем, когда что-то не работает, выяснить какую часть кода нужно исправить для слаженной работы сайта.

Безусловно, необходимо протестировать работу внесенных изменений. Если вы используете FTP для загрузки исправленного файла. htaccess в корневом каталоге вашего сайта, самое время выполнить его проверку. Введите в браузере адрес URL страницы, которую вы перенаправили. Она должна моментально перенаправить на прописанный URL.

Поиск и устранение неисправностей

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

Прежде всего, если переадресация закодирована в вашем файле.htaccess и оно записано корректно, но не работает, то проверьте состояние установки расширения mod_rewrite в Apache. Этот модуль обычно устанавливается по умолчанию, но если его там нет, то кодировка.htaccess, приведенная выше, работать не будет. Также убедитесь, что вы добавили две строки кода, которые разрешают работу модуля mod_rewrite и ReWriteEngine.

Кроме того, заметим, что использование в строках RewriteCond показывает о несоответствии входных данных с установленными характеристиками. Если вы упустите этот момент, адреса URL-ов с заглавными и строчными буквами могут не так работать, как ожидалось. Заметим, что использование L в коде говорит о том, что файл движка воспринимается как последняя строчка кода всего процесса подтверждения ввода данных. Если у вас противоречивая конфигурация кода в.htaccess, используйте код L в строке, обозначенной как приоритетной.

И напоследок отметим, что частое использование переадресации 301 не хорошо сказывается на здоровье всего сайта. Хоть она и очень полезна, но вы должны обновлять входящие ссылки сайта на правильные URL-лы. Игнорируя ваши старые входящие ссылки и используя для перехода через них многократно переадресацию 301 (301, затем 301, затем еще раз 301), вы увеличиваете время для загрузки сайта, что плохо сказывается на продвижении сайта. И если переадресаций будет очень много, то сканеры могут просто не дойти до целевого сайта. Если такое случается, то это вредит вашему сайту продвигаться в поисковой системе. Также, если вы обновляете ссылки вашего сайта, убедитесь, что обновляются и файлы sitemap.xml новыми обновленными URL-ми.

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

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

301 Moved Permanently

301 – постоянный редирект, который указывает на то, что запрашиваемая страница находится по новому адресу, а старый нужно считать устаревшим. Такой вид редиректа передает 90-99% ссылочной массы на новый URL.

Канонизация или склейка домена

Для склейки домена с www на без www:

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

Для склейки домена с без www на с www:

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

Для правильного выбора метода склейки нужно рассмотреть такие факторы:

  • У какого варианта выше индексация;
  • У какого варианта выше позиции в выдаче;
  • Канонизация слэша в конце адреса.

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

  • http://www.site.com/category1
  • http://www.site.com/category1/

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

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

или такой, чтобы добавить его:

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

Для редиректа 301 одной страницы на другую :

Redirect 301 /oldpage.html http://www.site.com/newpage.html

Чтобы убедиться, что при запросе любой версии главной страницы, к примеру: default.htm или index.html , будет произведен редирект на каноничную страницу http://www.site.com , нужно прописывать следующий код редиректа:

RewriteCond %{THE_REQUEST} ^{3,9}\ /([^/]+/)*(default|index|main)\.(html|php|htm)\ HTTP/ RewriteRule ^(([^/]+/)*)(default|main|index)\.(html|php|htm)$ http://www.site.com/$1

Редирект каталога

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

RewriteRule ^(.*)/old-catalog/(.*)$ $1/new-catalog/$2

Но бывает так, что адрес старого каталога отображается сразу после доменного имени, например www.site.com/old-catalog/ . В этом случае используется такой код:

RewriteRule old-catalog /(.*) / old-catalog /$1

Редирект при изменении расширения файлов

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

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

Редирект при появлении нескольких слэшей или тире

По разным причинам бывает, что в адресе появляются лишние слэши или тире, например www.site.com/catalog////page-1.html . Такие страницы нужно переадресовывать на адреса с одним слэшем .

RewriteCond %{REQUEST_URI} ^(.*)//(.*)$ RewriteRule . %1/%2

Таким же образом убираются и лишние тире в адресе, например изменение www.site.com/catalog/page-1.html на www.site.com/catalog/page-1.html .

RewriteCond %{REQUEST_URI} ^(.*)-(.*)$ RewriteRule . %1-%2

.htaccess - лишние слэши после имени домена

  • http://site.com//////catalog

Чтобы убрать все эти слэши так, чтобы было перенаправление на страницу без слэшей, т.е.

  • http://site.com/catalog

Нужно прописать:

RewriteCond %{REQUEST_URI} ^(.*)//(.*)$ RewriteRule . %1/%2

Генерация 301 редиректов

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

Здесь вы можете, вставив свои данные, мгновенно получить нужный код. Поддерживаются редиректы для доменов, url адресов, каталогов.

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

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

  • Проверить работает ли вообще сайт – зайти на его главную страницу;
  • Побродить по сайту, его разделам и отдельным страницам.

Но есть и сервисы для автоматической проверки редиректа:

  • http://bertal.ru – очень подробные данные обо всех откликах сервера

Правила использования 301 редиректа vs Canonical

Поисковая система Google устанавливает четкие правила, только при соблюдении которых, она будет верно трактовать ваши действия. Вот как буквально понимают поисковики 301 и Canonical:

  • – данная страница является устаревшей, новая страница находится по адресу такому-то. Прошу удалить старую страницу из индекса, а новую проиндексировать и полностью передать на нее весь вес старой.
  • Canonical – кроме этой версии страницы у меня есть еще и другие. Но ты, пожалуйста, индексируй только ту, на которой стоит Canonical. Другие версии будут лежать для того, чтобы их могли просматривать люди, но тебе включать их в индекс не нужно. Весь вес стоит передавать именно на страницу с Canonical.

Предпочтения по использованию редиректа 301

Обычно, это наиболее предпочтительный метод:

  • Для отдельных страниц – если навсегда изменился ее адрес;
  • Для доменов – если сайт будет находиться постоянно на новом домене;
  • Для страниц 404 и страниц с контентом, который более не актуален. К примеру, при удалении товара из каталога можно сделать редирект на похожий по функциям товар или на страницу каталога с этим типом товаров.

Когда лучше не использовать редирект 301

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

Понравился пост? Нажми на кнопочки →

301 код ошибки (Moved Permanently) означает, что данная страница или весь сайт перемещены на новый постоянный URL навсегда. Используется для передачи ссылочного веса. Обязательно проверяйте какой код ошибки отдает сервер, когда настроите данный редирект. Я использую для этого, например, замечательный плагин Firebug для Firefox.

Настройка 301 редиректов, если у Вас веб-сервер linux Apache, происходит в файле.htaccess. А в случае windows веб-сервера IIS — это будет файл web.config.

301 редирект на различных CMS, таких как wordpress, битрикс, друпал, dle, modx, joomla, opencart и других, настраивается с помощью специальных плагинов, а также обычным способом через htaccess или web config.

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

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

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

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

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

  • ? — символ повторяется 0 или 1 раз;
  • + — 1 и более символов (до 65536);
  • * — 0 и более символов (до 65536);

Настройка 301 редиректов в файлах htaccess и web.config

Я публикую здесь только проверенные и технически законченные рабочие варианты 301 редиректов. База рабочих вариантов 301 редиректов будет пополняться.
Редирект со старой статической (чпу) страницы на новую страницу:

RewriteEngine On RewriteCond %{HTTP_HOST} ^www\.seowind\.ru$ RewriteRule ^baza-znanij-seo/nastrojka-301-redirekta/$ https://www.сайт/newpage/

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

RewriteEngine On RewriteCond %{HTTP_HOST} ^www\.seowind\.ru$ RewriteRule ^baza-znanij-seo/nastrojka-301-redirekta/$ https://www.сайт/

Редирект с главной на внутреннюю страницу:

RewriteEngine On RewriteCond %{HTTP_HOST} ^www\.seowind\.ru$ RewriteRule ^$ https://www.сайт/baza-znanij-seo/nastrojka-301-redirekta/

Редирект со страниц сайта с WWW на страницы без WWW:

RewriteEngine On RewriteCond %{HTTP_HOST} ^www\.seowind\.ru$ RewriteCond %{REQUEST_URI} !^/robots.* RewriteRule ^(.*)$ http://сайт/$1

Редирект со страниц сайта без WWW на страницы с WWW:

RewriteEngine On RewriteCond %{HTTP_HOST} ^seowind\.ru$ RewriteCond %{REQUEST_URI} !^/robots.* RewriteRule ^(.*)$ https://www.сайт/$1

Следующий пример позволяет убрать слеш на конце урла.

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

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

А здесь добавляем слеш в конец урла:

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

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

RewriteEngine On RewriteCond %{THE_REQUEST} ^{3,9}\ /index\.php\ HTTP/ RewriteRule ^index\.php$ https://www.сайт/

Редирект всех внутренних страниц на главную:

RewriteEngine On RewriteCond %{ENV:REDIRECT_STATUS} ^$ RewriteRule !(^$|.*\.(css|jpg|gif)) /

Редирект урла с параметром на любую внутреннюю страницу сайта: (Например, со страницы http://www.site.ru/news.php?category=1 на http://www.site.ru/news.php?category=2 (здесь параметр category=)):

RewriteEngine On RewriteCond %{QUERY_STRING} category=1 RewriteRule ^news.php http://www.site.ru/news.php?category=2

Редирект урла с параметром на главную страницу сайта: (Например, http://site.ru/index.php?show_section=12 на главную страницу http://site.ru/ (здесь параметр show_section=12)):

RewriteEngine On RewriteCond %{QUERY_STRING} show_section=12 RewriteRule ^index.php http://site.ru/?

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

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

Редирект с домена РФ на домен RU . Здесь важно знать, что РФ зона преобразуется в .xn--p1ai , а само название кириллического домена в соответствующий код (punycode) на латинице xn-… .

RewriteCond %{HTTP_HOST} ^xn-...\.xn--p1ai$ RewriteRule ^(.*)$ https://www.сайт/$1

301 редирект каталога:

RewriteRule ^(.*)/old-catalog/(.*)$ $1/new-catalog/$2

Вы наверное в своей практике встречали случай, когда есть 2 сайта с одинаковой информацией, но в то же время доступные по разным адресам (сайты дубли). У этих сайтов одинаковый robots.txt, sitemap.xml и один на двоих.htaccess. Предлагаю вариант 301 редиректа с неосновного такого сайта (site2) на основной (site1):

RewriteEngine On RewriteCond %{HTTP_HOST} ^site2.ru$ RewriteCond %{HTTP_HOST} ^www.site2.ru$ RewriteCond %{REQUEST_URI} !^/robots.* RewriteRule ^(.*)$ http://www.site1.ru/$1

Вставка включающая в себе все редиректы со страниц index|default с расширениями htm|html|php|asp|aspx на главную:

RewriteEngine On RewriteCond %{THE_REQUEST} ^GET\ .*/(index|default)\.(htm|html|php|asp|aspx)\ HTTP RewriteRule ^(.*)(index|default)\.(htm|html|php|asp|aspx)$ http://www.site.ru/$1

Понравилась статья? Поделитесь с друзьями!