Редирект 301 - Здесь, на самом деле, все не так сложно, как может показаться.

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

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

Все, что вам нужно, это доступ к файлу.htaccess, и возможность редактировать и загружать этот файл на сервер (возможно, загружать его и не придется, так как многие сервера поддерживают cPanel, которая позволяет редактировать файл.htaccess непосредственно на сервере).

Зачем делать редирект 301?

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

1. Изменение имени файлов и/или их расширений: редирект 301 может быть использован, когда вы хотите изменить файловую структуру вашего сайта или изменить расширения файлов (например, переход от html к php)..html, будут перенаправлены на сайт/newfile.php или ту страницу, которую вы укажете в.htaccess.

2. Переезд на новый домен : редирект 301 – это ключевой момент при изменении доменного имени. Когда пользователи будут переходить на страницы на вашем старом домене, их автоматически будет перенаправлять на новые страницы на новом доменном имени..html, он будет автоматически перенаправлен на newdomain.com/page1.html.

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

4.Партнерские ссылки: редиректы также обычно используются для , что может увеличить активность пользователей, и позволит не использовать прямые исходящие ссылки на партнерские программы. Вы создаете страницу с соответствующим названием файла, и применяете к ней перенаправление 301 на партнерский сайт. Например, вместо размещения прямой ссылки на partnerkaprimer.com/affiliate-offer.html, вы создадите страницу на своем сайте с именем файла “merchantxyz.html”, и при переходе пользователей на эту страницу vashdomen.ru/click/merchantxyz.html, они автоматически будут перенаправляться на partnerkaprimer.com/affiliate-offer.html. Как правило, вам ещё нужно добавить атрибут к ссылке на вашу страницу merchantxyz.html, чтобы партнерская ссылка не индексировалась.

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

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

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

Пример 1. Вы изменили имя одного из файлов на сайте.

Старое имя файла /oldpage.html, новое — /newpage.html. В файле.htaccess вам нужно прописать такой код:

redirect 301 /oldpage.html http://www.vashdomen.ru/newpage.html

Пример 2. Вы заменили.html страницу на.php, но имя оставили то же.

Старое имя файла /yourpage.html, новое — /yourpage.php. Код практически идентичный предыдущему, только меняем расширение:

redirect 301 /yourpage.html http://www.vashdomen.ru/you-page.php

Допустим партнерская ссылка такая — partnerkaprimer.com.com&affid=64564242. Честно говоря, такая ссылка вряд ли внушает спокойствие и доверие пользователей. Сначала стоит создать страницу /merchant-offer.html на вашем сайте, с которой мы будем перенаправлять пользователей на партнерское предложение. Теперь осталось разместить ссылку на страницу vashdomen.ru/merchant-offer.html и не забыть об атрибуте rel=”nofollow”. Также можно оформить ссылку в виде кнопки или изображения. В файле.htaccess вам нужно прописать:

redirect 301 /merchant-offer.html http://www.merchantdomain.com&affid=64564242

Пример 4. Перенаправление с домена с 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

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

Хотите перенаправить URL-адрес из одного места в другое? В этом простом руководстве мы покажем, как можно это сделать с помощью Apache / .htaccess , PHP , JavaScript , HTML и т. д. Каждый метод редиректа HTML мы кратко поясним и продемонстрируем готовые к использованию примеры.

Редирект URL-адресов с помощью PHP

Редирект с помощью PHP выполняется с помощью функции header() , например:

Эта функция должна быть вызвана в начале веб-страницы до вывода HTML-кода . Чтобы узнать больше о настройке этого метода, ознакомьтесь с документацией PHP .

Чтобы выполнить редирект с помощью PHP через определенное время:

Редирект на example.com выполняется через 5 секунд. Вы можете изменить это значение на необходимое.

Редирект URL-адресов с помощью JavaScript

Вот самый простой способ index html редиректа с помощью JavaScript :

document.location.href = "http://example.com/";

Редирект URL-адресов с помощью HTML

Можно перенаправить пользователя на новый URL-адрес , используя старый добрый HTML . Вот пример:

Это называется meta-refresh редирект. Можно задать время (в секундах ), изменив 10 на необходимое число. Обратите внимание, что этим методом редиректа часто злоупотребляют спамеры. Поэтому будьте осторожны, если вы реализуете его на общедоступном сайте.

Редирект URL-адресов с помощью Perl

Вот два способа редиректа URL-адресов с помощью Perl :

#!/usr/bin/perl print "Location: http://example.comnn"; exit;

Редирект URL-адресов с помощью ASP (VB Script)

Чтобы перенаправить URL-адрес с помощью ASP , добавьте следующий код:

Редирект URL-адресов с помощью mod_alias Apache

Самый простой способ перенаправления на серверах Apache :

Redirect 301 /old-location.html http://example.com/new-location/

Перед тем, как сделать редирект HTML , этот код нужно добавить в файл .htaccess или файл конфигурации сервера Apache . Вот синтаксис этого метода:

[Директива] [Код состояния] [Старый URL] [Новый URL]

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

http://example.com/old-directory/file-01.html http://example.com/old-directory/file-02.html http://example.com/old-directory/file-03.html . . .

Можно использовать RedirectMatch вместо Redirect :

RedirectMatch 301 /old-directory/file-(.*).html http://example.com/new-directory/file-$1.html

Также можно изменить код статуса с 301 (постоянный редирект ) на 302 (временный редирект ). Или на любой другой действительный код состояния. Ниже приведено руководство по регулярным выражениям, используемым в методе RedirectMatch :

  • или отсутствию символа );
  • $1 — возвращает шаблон, сопоставляемый первым (.*) .
Редирект URL-адресов с помощью mod_rewrite Apache

Более функциональный способ редиректа с помощью Apache — использовать его переписывающий модуль mod_rewrite . Вот несколько примеров, которые можно добавить в .htaccess или в файл конфигурации Apache .

Пример 1: Редирект с www на без www

Этот код редиректа HTML перенаправляет все www-версии URL-адресов на их эквивалентные версии без www .

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

Это называется канонизацией. Вот несколько примечаний о регулярном выражении, используемом в этом примере:

  • . — буквально соответствует точке;
  • $ — обозначает конец запрошенного URI ;
  • (.*) — соответствует любому символу (или отсутствию символов );
Пример 2: Редирект всего домена

Чтобы осуществить редирект HTML с текущего домена на новый:

RewriteRule ^/(.*) https://new-domain.tld/$1

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

RewriteCond %{HTTP_HOST} (.*).old-domain.tld RewriteRule ^/(.*) https://%1.new-domain.tld/$1

Вот несколько примечаний о регулярном выражении, используемом в этом примере:

  • ^ — обозначает начало запрошенного URI ;
  • (.*) — соответствует любому символу (или отсутствию символов );
  • $1 — соответствует шаблону из круглых скобок (.*) в RewriteRule ;
  • %1 — соответствует первому шаблону из круглых скобок (.*) в RewriteCond
  • — отправляет код состояния 301 и инструктирует Apache прекратить обработку набора правил.

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

Пример 3: Перенаправление всех файлов HTML и PHP

Вот еще один, более сложный пример скрипта редиректа HTML mod_rewrite :

RewriteCond %{REQUEST_URI} ^/old-directory/(.*).(html|php)$ RewriteRule (.*) http://example.com/new-directory/%1.%2

Мы перенаправляем все запросы к любым файлам HTML или PHP , расположенным в папке /old-directory/ . Все соответствующие запросы перенаправляются в тот же файл, который находится в /new-directory/ . Вот несколько примечаний о регулярном выражении, используемом в этом примере:

  • ^ — обозначает начало запрошенного URI;
  • (.*) — соответствует любому символу (или отсутствию символов );
  • . — буквально соответствует точке;
  • (html php) — соответствует либо html , либо php ;
  • — делает шаблон нечувствительным к регистру;
  • %1 — соответствует первому шаблону из круглых скобок (. *) в RewriteCond ;
  • %2 — соответствует второму шаблону из круглых скобок (html|php ) в RewriteCond ;
  • — отправляет код состояния 301 и инструктирует Apache прекратить обработку набора правил.
Редирект ошибки 404 с помощью Apache

Вот удобный код редиректа html HTML всех ошибок 404 «Not Found» на определенный URL .

Мы выпустили новую книгу «Контент-маркетинг в социальных сетях: Как засесть в голову подписчиков и влюбить их в свой бренд».

Подписаться

(с англ. redirect) - процесс переориентировки определенных страниц или всего сайта целиком на новый URL-адрес.

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

К некоторым редиректам поисковики относятся насторожено. Из-за этого показатели сайта могут существенно упасть, но подобная тенденция не касается переадресации под кодом «301».

Виды редиректов страниц и их назначение

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

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

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

Также существуют следующие виды редиректов:

  • 307 (Temporary Redirect) - временная смена URL страницы, с сохранением начального адреса в индексе поисковиков;
  • 306 - зарезервирован под использование, но пока не применяется;
  • 305 (Use Proxy) обозначает переадресацию сначала на , а затем по повторному автоматическому запросу на искомую страницу;
  • 304 (Not Modified) - ответ сервера браузеру в случае, если с момента последнего запроса просмотренный браузером документ не изменился. Тогда браузер открывает пользователю этот документ из кеша;
  • 303 (See Other) - в переводе означает «смотри другое». Этот редирект информирует о найденном документе и перенаправляет пользователя на искомую страницу, используя метод GET (передает данные серверу через URL);
  • 300 (Multiple Choices) обозначает многовариантный выбор страницы, на которую перенаправить пользователя. Например, в зависимости от настроек браузера пользователя, поисковик перенаправит его на страницу с подходящими языковыми настройками или .
Возможности редиректа 301

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

Он поможет:

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

Процесс «склейки» двух доменов осуществляется путем создания кода редиректа 301. Для этого в корневой папке сайта необходимо найти файл с расширением и прописать в нем специальный код. Также потребуется настроить зеркала сайта - указать в файле robots.txt, какой из сайтов главный. Это делается при помощи команды host.

С 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

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

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

Наличие или отсутствие в адресе сайта символа «слеша» в конце, так же, как и «www» в его начале, имеет значение для индексации поисковиками.

Например, адрес сайта выглядит так сайт. Возможные варианты этого адреса (сайт/, www..сайт/) браузер пользователя воспримет корректно и автоматически преобразует в правильную версию.

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

Удаление слеша RewriteCond %{HTTP_HOST} (.*) RewriteCond %{REQUEST_URI} /$ RewriteRule ^(.*)(/)$ $1 Добавление слэша RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_URI} !(.*)/$ RewriteRule ^(.*[^/])$ $1/

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

Склеить слеши RewriteCond %{REQUEST_URI} ^(.*)//(.*)$ RewriteRule . %1/%2 Склеить дефисы RewriteCond %{REQUEST_URI} ^(.*)--(.*)$ RewriteRule . %1-%2

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

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

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

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

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

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

Иногда возникает необходимость на новый домен. Чтобы сделать это не потеряв показатели ТИЦ и PR, а также сохранив ссылочную массу и объем страниц, следует прописать редирект 301 для каждой из страниц старого сайта. В корневой папке старого сайта в файле robots.txt проставляется директива host, которая указывает на адрес нового домена.

Как сделать редирект

Для генерации редирект-кодов существуют специальные онлайн-сервисы. При недостаточном количестве знаний или опыта каждый веб-программист сможет воспользоваться такой помощью. Также посредством использования онлайн-генератора можно выявить ошибку в коде, созданном самостоятельно.
Наиболее популярными площадками, предлагающими услуги генерации редиректов, являются:
http://www.rapidtables.com/web/tools/redirect-generator.htm

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

Целесообразность использования 301-ого редиректа

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

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

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

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

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

Переадресацию страниц можно делать разными методами. Рассмотрим основные.

301 редирект через.htaccess

В корне вашего сайта есть файл (если его нет - создайте) под названием.htaccess. Откройте его на редактирование и используйте один из следующих способов.

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

Примеры:
Redirect permanent /staraya-stranica.php http://newsait.ru/novaya-stranica.php
(здесь просто переадресуем с устаревшей страницы на новую)

Redirect 301 / http://newsait.ru/
(здесь / означает, что все начиная с главной страницы сайта и всех его подстраниц (поддиректорий) будет переадресовываться на новый домен; т.е. фактически переадресация с оного домена на другой.)

RewriteRule редирект - более сложный редирект, чем предыдущие варианты. Требует для правильной работы подключение модуля mod_rewrite на хостинге (обычно всегда включен). Часто этот метод используют для переадресации страниц с www на такие же без www и обратно. Рассмотрим их:

Редирект домена с www на не-www
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.*)
RewriteRule ^(.*)$ http://%1/$1

Редирект с не-www на домен с www
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.(.*)
RewriteRule ^(.*)$ http://www.%1/$1

301 редирект с домена на домен и исключением для ссылки /market/vm2_market.xml. Т.е. все запросы (кроме /market/vm2_market.xml), со старого домена на новый будут выполняться.

RewriteEngine on

301 Все запросы (кроме /market/vm2_market.xml и ссылки /texts (и всеми ее "подссылками")), со старого домена на новый будут выполняться. Также здесь работает правило переадресации определенной подссылки (RedirectMatch 301)

RewriteEngine on
RedirectMatch 301 ^/texts/data/msg/(.*)\.png$ http://olddomen.ru/texts/data/rimage/msg.php?id=$1
RewriteCond %{REQUEST_URI} !^/texts*
RewriteCond %{REQUEST_URI} !^/market/vm2_market.xml$
RewriteRule ^(.*)$ http://newdomen.ru/$1

RedirectMatch 301 - еще один хороший метод редиректа, он похож на Redirect 301, но имеет больший функционал. А именно, с его помощью можно делать редиректы на основе регулярных выражений.

Примеры:
RedirectMatch 301 ^/olddirectory/ http://сайт/newdirectory/
(Здесь переадресует всю директорию на новую)

RedirectMatch 301 ^(.*)$ http://сайт
(Переадресует все страницы со старого домена на новый с помощью 301 редиректа (вес также передается на новый сайт))

RedirectMatch 301 (.*)\..php
(Смена страниц с html расширения на php расширение)

RedirectMatch 301 /dirA/(.*)\..php
(Запускает перенаправление из директории dirA в директорию dirB только при обращении к PHP скриптам.
.php -> http://сайт/dirB/page.php - сработает
http://сайт/dirB/page.html - не сработает)

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

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

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

Спецсимволы, используемые в правилах и их значения.
^ - спецсимвол начала строки;
$ - спецсимвол конца строки;
! - спецсимвол отрицания;
. - точка, заменяет любой символ, но только один;
() - группировка;
\ - «экранирующий» слеш, следующий символ после него считается обычным, а не спецсимволом.

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

Флаги, задают доп. опции для используемого правила. Перечисляются в квадратных скобках через запятую, скажем или .
NC - флаг NoCase, отключающий проверку регистра символов при срабатывании правила.
R - флаг Redirect, производит процесс остановки изменения URL-адреса и возвращает результат. Чаще всего используется значение R=301, но возможны и другие для временных перенаправлений (302, MOVED TEMPORARY).
L - флаг Last, останавливает формирования URL-адреса и строка считается окончательной.

Редирект через php. Если у вас обычная php страница, которую надо переадресовать на новый адрес, то можно обойтись без.htaccess

Пример:

Редирект через javascript. Также переадресацию можно сделать и на обычном javascript (правда без передачи веса страницы).

Пример:
window.location="http://сайт/category/";
(обычная переадресация на страницу сайта)
alert("Сейчас вы будете переадресованы!"); window.location="http://сайт/category/";
(обычная переадресация на страницу сайта перед которой пользователю выводится сообщение)

Редирект (от англ. redirect – переориентировать) – это переадресация страницы сайта на какую-то другую страницу или другой сайт. Редирект можно сделать различными способами, основные из которых и будут здесь рассмотрены., а именно redirect на php , javascript , редирект при помощи html и при помощи файла htaccess .

Среди перечисленных способов, наиболее актуальными являются php redirect и редирект при помощи.htaccess . Дело в том, что именно эти способы позволяют не только переадресовать страницу, но и вернуть специальную 301 ошибку (301 Permament Redirect). Для чего же это нужно? А нужно это для поисковых систем.

Допустим у нас был раскрученный сайт с большим числом посетителей. Затем сайт был перемещён на новый домен. Поисковая система его ещё не знает. 301 редирект позволяет как бы “склеить” старый и новый адрес, сохранив при этом все те элементы оптимизации, которые были сделаны для этого сайта, тем самым сохранив посещаемость и аудиторию самого сайта.

А теперь рассмотрим все перечисленные варианты редиректов, и начнём с редиректа на php.

PHP redirect (301)

Редирект на php, как и на других языках программирования, основан на спецификации протокола HTTP, а именно отправки необходимых заголовков. Как это работает? Довольно просто. Каждый раз, когда мы обращаемся к какой-то странице интернета, мы получаем HTTP ответ от сервера, который содержит заголовки (header) и тело (body). В теле ответа

Редирект HTML

В языке разметки HTML есть специальный мета-тег, предназначенный для переадресации.

Изменяется только поле content, где указывается количество секунд до переадресации и собственно ссылка, куда будет производиться редирект. Думаю не стоит говорить, что тег помещается в html-код между тегами head.

Редирект JavaScript

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


function reload() {location = "http://site.com"}; setTimeout("reload()", 0);

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

Редирект htaccess (301)

Файл.htaccess – это служебный файл с различными дополнительными настройками сервера Apache. Размещается он вручную, в нашем случае, в корне сайта. С его помощью можно устраивать 301 редиректы, однако для этого в Апаче должны быть включены необходимые модули.

Использование директив модуля mod_alias

В данном модуле существуют три директивы: Redirect, RedirectPermanent и RedirectMatch. Первые две вроде как идентичны по своим свойства, третья идёт особняком. Для первых двух пример:

Redirect 301 / http://site.com
Redirect permanent /index.html http://site.com
RedirectPermanent /index.html http://site.com/default.html

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

RedirectMatch /(.*)\.html$ /$1.php

Можно задавать регулярные выражения для переадресации со старого урла на новый.

Использование директив модуля mod_rewrite

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

#включаем модуль и необходимую доп.опцию
RewriteEngine On
Options +FollowSymLinks
#две строки для переадресации от "без ввв" к "с ввв"
RewriteCond %{HTTP_HOST} ^site.com
RewriteRule (.*) http://www.site.com/$1

Вместо заключения

Если вас всё ещё мучает вопрос, на чём же остановить свой выбор (конечно мучает, тисками и ножницами – прим.ред. ), то пора перестать мучиться (да что вы говорите! – прим.ред. ). Останавливаем взор на редиректе php (или другого языка программирования, которые здесь не были рассмотрены, например Perl) и редиректе при помощи файла.htaccess, поскольку именно они позволяют перенести сайт без всяких потерь для оптимизации в поисковых системах. Если оно не важно, то тогда подойдёт любой метод. И собственно на этой заключительной ноте (соль? ля? си? – прим.ред. ) я и заканчиваю этот пост.