Учимся делать 301 редирект с помощью htaccess и php

Учимся делать 301 редирект с помощью htaccess и php
как сделать 303 редирект
Сначала, нужно разобраться, что же такое 301 редирект. Вообще, редирект — это англицизм слова Redirect, что в переводе означает переадресацию. Тогда как число 301 — это код статуса HTTP протокола. Этот код говорит о том, что запрошенная страница перенесена на другой url, на постоянной основе. То есть, например, для конкретной страницы мы поменяли адрес на новый, но ни пользователи ни поисковые системы об этом не знают, а значит они не смогут попасть на эту страницу, и вместо целевой, они будут попадать на 404 страницу (ресурс не найден).

Зачем нужен 301 редирект?

К примеру, у нас была страница про менеджер паролей Keepass с таким адресом — /post/12509/ и мы решили сделать ЧПУ. То есть, теперь адрес страницы должен быть такой - /keepass-manаger/, этот адрес неизвестен поисковым системам, соответственно все, кто приходит из поиска будут попадать на старый адрес а не на новый. Но страницы со старым адресом уже не существует, значит посетители будут попадать на 404 страницу. То есть, у нас на сайте появится битая ссылка. И чтобы такого не происходило, нужно правильно сделать 301 редирект. Тогда пользователи из поиска будут перенаправляться со старого адреса на новый.

Как же сделать 301 редирект?

Итак, начнем с того, что вы должны познакомиться с файлом .htaccess. Именно в этот файл мы будем прописывать редиректы. Этот файл должен находиться в корневой директории вашего сайта, там же где находится файл index.php. Если у вас нет этого файла, значит вам нужно его создать вручную. обратите внимание на точку в имени файла - .htaccess. Имя должно быть точно таким же, включая точку.

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

RedirectPermanent 301 old_url new_url
  • RedirectPermanent 301 — инструкции редиректа
  • где old_url — старый адрес страницы
  • new_url — новый адрес страницы

Рассмотрим пример редиректа на моем сайте по программированию. У нас есть следующая целевая страница - http://cppstudio.com/dlya-nachinayushhix/rekomendovannaya-literatura/ — это старый адрес, с этого адреса нужно сделать переадресацию на новый адрес - /cat/299/. Новый адрес хотя и не похож на ЧПУ, но, зато, он более короткий и легко запоминается. Я открываю файл .htaccess и в конец добавляю следующую строку:

RedirectPermanent 301 /dlya-nachinayushhix/rekomendovannaya-literatura/ /cat/299/

Как видите, я указал ключевое слово RedirectPermanent, указал номер статуса, потом указал старый адрес и, через пробел, — новый. Чтобы проверить, работает редирект или — нет, пройдите по следующим адресам:

  • http://cppstudio.com/dlya-nachinayushhix/rekomendovannaya-literatura/ — старый адрес страницы
  • http://cppstudio.com/cat/299/ — новый адрес страницы

Эти два адреса ведут на одну и туже страницу и адрес у этой страницы — /cat/299/. Со старого адреса выполняется 301 редирект на новый адрес. Теперь вы имеете наглядное представление того, как работает 301 редирект.

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

RedirectPermanent 301 http://cppstudio.com/dlya-nachinayushhix/rekomendovannaya-literatura/ http://cppstudio.com/cat/299/

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

Другие директивы редиректа 301

Для 301 редиректа, также можно использовать директиву Redirect, она абсолютно аналогична директиве RedirectPermanent. Отличие состоит в том, что RedirectPermanent была разработана позже, в отличие от директивы Redirect. Директива RedirectMatch используется для настройки переадресации с помощью регулярных выражений.

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

PHP 301 редирект

<?php
header("HTTP/1.1 301 Moved Permanently"); // отправляем заголовок состояния (в нашем случае - это редирект 301)
header("Location: /post/12803/"); // редирект на другую страницу блога
exit();
?>

Как видите из примера, 301 редирект в php выполняется достаточно легко, просто скопируйте этот кусок кода и укажите свой адрес страницы. А теперь давайте протестируем php-редирект:

Тестируем php-редирект

Обратите внимание на адрес ссылки, вот он /wp-content/scripts/php_redirect.php. По этому адресу мы обращаемся к php-скрипту, в котором прописан редирект на страницу с фидбернером.

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

ЛУЧШИЙ БЛОГ ГОДА ПО МНЕНИЮ ISIF-LIFE.RU

Спешу сообщить, что мой блог участвует в конкурсе от Александра Борисова - «Лучший блог ГОДА по мнению Isif-Life.ru». Я очень хочу победить в этом конкурсе, занять первое место. А знаете почему? Потому что в этом году, победитель получает не только главный приз — 10000 рублей, но и классный девайс от яблочной корпорации - Iphone 5S 16 Гб. Конкурс будет длиться весь текущий год, и в декабре 2014 года, по результатам конкурса будет определен лучший блог года.

4 Комментариев

  1. Сергей Ким 4 года назад

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

  2. Рашида 3 года назад

    Желаю вам победы в конкурсе на лучший блог у Борисова!!! Призы действительно замечательные!

  3. dating in asia 10 месяцев назад

    Thanks for sharing your thoughts on сделать.
    Regards

  4. chat omegle 3 месяца назад

    I have learn a few excellent stuff here. Certainly worth bookmarking for
    revisiting. I surprise how a lot effort you set to make such a great informative
    site.

Оставить комментарий

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

*

/wp-content/plugins/wp-monalisa/icons/wpml_bye.gif 
/wp-content/plugins/wp-monalisa/icons/wpml_good.gif 
/wp-content/plugins/wp-monalisa/icons/wpml_negative.gif 
/wp-content/plugins/wp-monalisa/icons/wpml_scratch.gif 
/wp-content/plugins/wp-monalisa/icons/wpml_wacko.gif 
/wp-content/plugins/wp-monalisa/icons/wpml_yahoo.gif 
/wp-content/plugins/wp-monalisa/icons/wpml_cool.gif 
/wp-content/plugins/wp-monalisa/icons/wpml_heart.gif 
/wp-content/plugins/wp-monalisa/icons/wpml_rose.gif 
/wp-content/plugins/wp-monalisa/icons/wpml_smile.gif 
/wp-content/plugins/wp-monalisa/icons/wpml_whistle3.gif 
/wp-content/plugins/wp-monalisa/icons/wpml_yes.gif 
/wp-content/plugins/wp-monalisa/icons/wpml_cry.gif 
/wp-content/plugins/wp-monalisa/icons/wpml_mail.gif 
/wp-content/plugins/wp-monalisa/icons/wpml_sad.gif 
/wp-content/plugins/wp-monalisa/icons/wpml_unsure.gif 
/wp-content/plugins/wp-monalisa/icons/wpml_wink.gif 
 

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <img src="" alt="" class="" width="" height="">