301 Редирект Внутри Сайта

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

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

Запись в http заголовке 301 Moved Permanently означает, что эта страница или сайт перенесены на новый адрес на постоянной основе. Т.е. с помощью 301 редиректа мы перенаправляем пользователей на новый адрес и говорим поисковому боту «Привет, эта страница/сайт больше не доступна по старому адресу, она переехала на новый адрес на постоянно основе». Через некоторое время поисковый бот склеит старый адрес с новым и все заслуги старого адреса будут присвоены новому (ссылочное, pr, тиц и т.д.).

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

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

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

Т.к. наш сайт на php и мы используем апача (apache) на сервере, то переадресацию можно устроить с помощью файла .htaccess. Он лежит в корне. Стягиваем его себе на машину и делаем бэкап в какой-то другой папочке. Редактировать его можно в блокноте. Дальше нужно включить модуль mod_rewrite или найти где он включен и записываем строку редиректа RewriteRule ^page.php http://www.example.com.ua/ [R=301,L]. Тут мы устраиваем переадресацию со страницы http://www.example.com.ua/page.php на главную страницу сайта. Т.е. по синтаксису значит сначала откуда потом куда.

Вот так выглядит .htaccess

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index.php$ http://www.example.com/ [R=301,L]

Это один из способов записи редиректа в .htaccess. Мне он больше всего нравится.

Перед настройкой 301 редиректов убедитесь в том, что в Apache подключен модуль mod_rewrite (файл httpd.conf).

Так же в первых строках файла .htaccess прописываются директивы, необходимые для работы модуля mod_rewrite:

Options +FollowSymLinks
RewriteEngine On
RewriteBase /

P.S. Тут можно проверить Http заголовок.

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

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^(.+)/$
RewriteRule ^(.+)/$ /$1 [R=301,L]

Записываем это правило все в том же файле .htaccess и радуемся жизни :).

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

Ваш адрес email не будет опубликован.