Содержание:
Быстрая навигация по этой странице:
Вместо вступления
Часто, набирая какой — нибудь адрес в поисковой системе, пользователь натыкается на сообщение, что такого адреса или страницы не существует. Для недопущения таких случаев создателями web-сайтов и URL – адресов используется htaccess 301 редирект, т.е. перенаправление в директиве htaccess (не путать с редиректом на PHP).
Редирект htaccess дается в помощь веб-мастеру для того, чтобы после создания нового URL-адреса поисковик интернета не только быстро нашел запрашиваемую страницу, но и для идентификации старого URL – адреса с новым.
htaccess — файл для важной конфигурации веб-серверов. Позволяет задавать наибольшее количество уточняющих параметров и разрешений для работоспособности веб-сервера у разных пользователей интернета. А также на других папках пользователей интернета, таких, как управление удаленным доступом к каталогам, переназначение видов файлов и т.п., но, не допуская доступа к главному файлу конфигурации, т.е. не мешая работоспособности всего сервиса целиком.
Основные выражения для записей кодов
Для того чтобы знать, как настроить 301 редирект в файле .htaccess, нужно хорошо знать выражения, которые вам потребуются для записей кодов:
- $ — ограничение справа;
- . — любой символ;
- * — 0 и более символов;
- [] — диапазон значений;
- () — переменная;
- + — 1 и более символов;
- \ — экранирование;
- ^ — ограничение слева.
Приступаем к работе
Для настройки перенаправления через файл .htaccess, находившийся в корневой директории, используется запись:
[code]
RewriteEngine On
[/code]
Для того чтобы настроить редирект на другой сайт, необходимо прописать следующие коды:
использовать домен без www (и наоборот).
Это перенаправление для целого сайта, но можно создать редирект для какой-то одной страницы:
Перенаправление 301/старый_адрес.html http://site.com/новый_адрес.html
Если страница не имеет окончание типа .html, тогда код будет прописан в виде RedirectMatch301.
Если перенаправление нужно создать с адреса следующего типа: index.php?option=com_contact&Itemid=29 на URL такого вида: http://www.site.com/kontakti,
код редиректа будет выглядеть таким образом:
[code]
RewriteCond %{QUERY_STRING} ^option=com_contact&Itemid=29$ [NC] RewriteRule ^index\.php$ http://www.site.com/kontakti? [R=301,L]
[/code]
Редирект на другой сайт будет работать по отношению только к единственному конкретному адресу. Можно задать сразу несколько разных адресов. Также можно создать перенаправление и с помощью записи директив для модуля типа mod_rewrite. В этом случае переадресация с домена с www на адрес без www будет иметь вид:
Полезный совет
Так как память у нас не резиновая и держать все особенности настройки и весь синтаксис в ней очень трудно, то лучше всегда иметь в доступности файл-документ, в котором прописан редирект 301 со всей официальной документацией по теме. И, после настройки перенаправления, не забывайте проверять внутренние и главную страницы, как они работают. Реакция поисковых систем во многом зависит от самого сайта и его качества: если он трастовый, то весь процесс может занять не менее недели, идаже превысить один месяц.