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 и радуемся жизни :).