RewriteRule и прочие директивы преобразования URL

загрузка...

Файл дополнительных конфигураций htaccess для серверов наподобие Apache — это отличная возможность внести локальные настройки в отдельных каталогах. Кроме того, при помощи этого файла можно склеивать зеркала, управлять доступом к отдельным страницам, а также преобразовывать ссылки. В данной статье речь пойдет о последнем пункте — о преобразовании ссылок при помощи директивы RewriteRule и ее опций. Вы увидите примеры простейших перенаправлений URL, узнаете принцип работы mod rewrite, в каких случаях стоит активировать переадресацию ссылок и многое другое.

В каких случаях на сайте можно использовать директивы преобразования ссылок

Вы не всегда сможете прописывать опции, наподобие RewriteBase или RewriteEngine On внутри файла htaccess для перенаправления URl, поскольку эти возможности работают только при активированном модуле rewrite. Как правило, на серверах Apache этот модуль активирован по умолчанию, но не всегда. Порой вместо данного модуля на сервере активирован другой, например, mod alias. А другой модуль — это означает другие команды. Потому активация перенаправления URL при помощи RewriteEngine On в файле htaccess не сработает, если модуль rewrite не активен.

Узнать об активности нужного модуля можно в технической службе поддержки. Дело в том, что этот модуль вам понадобится не только для того, чтобы перенаправлять URL через директиву RewriteRule, а и для активации человекопонятных ссылок на сайте. Такие URL позитивно сказываются на индексации ресурса, поскольку ключевые слова вы сможете размещать не только в заголовках и тайтлах, но и в URL статей. Как показывают примеры реальных людей, такой метод оптимизации страниц работает, потому считайте, что модуль rewrite необходим для успеха вашего сайта! Если на сервере его нет, переезжайте на другой хостинг.

Как использовать директивы RewriteRule в конфигурационном файле htaccess

Стоит отметить, что это многоразовая функция для файла htaccess. То есть вы сможете прописывать директивы RewriteRule многократно в конфигурациях, задавая каждый раз новое правило для сайта. Возможно, у вас возникнут трудности с наследием правил из файлов htaccess более высокого уровня в файлы более низкого. Для этого вам необходимо будет активировать функцию преобразования URL при помощи RewriteEngine On внутри текущего каталога и задать там нужные правила.

Опция RewriteEngine On является обязательной для активации директивы RewriteRule в файле htaccess. Чтобы деактивировать преобразование URL возле RewriteEngine поставьте Off вместо On.

Данная директива весьма удобна, поскольку вам не придется использовать решетку «#» для деактивации RewriteRule — достаточно выставлять On или Off. Со временем написание этой строки в качестве вводной станет вашей привычкой.

загрузка...

Кроме того, команда RewriteEngine On нужна для тех случаев, если вы не желаете наследовать правила родительских каталогов. Потому что по умолчанию каталог, имеющий хоть одну директиву модуля rewrite, унаследует правила родительской папки. А написание в htaccess опции RewriteEngine On позволит вам создать уникальный набор правил без следования родительским.

А если вы хотите сделать так, чтобы были введены новые правила преобразования URL в файле htaccess, но старые при этом сохранялись, то перед написанием директивы RewriteRule указывайте строку RewriteOptions inherit. Также напишите и RewriteEngine On, потому как без этой команды модуль преобразования URL не заработает.

Чаще всего модуль преобразования URL используют для склейки доменов. Как только вы создадите сайт и приобретете для него домен, у вас появится распространенная проблема — на главную можно будет перейти к с указанием WWW в начале адреса, так и без. Потому постепенно в поисковой выдаче начнут появляться разные ссылки на ваш сайт. Это негативно скажется на наборе поискового рейтинга PR и ТИЦ, а также приведет к дублированию страниц. Потому вам лучше склеить два адреса в один. Для этого нужно один URL посылать на другой через модуль преобразования ссылок. Пользователи не будут успевать замечать перенаправление, так как файл htaccess обрабатывается сервером одним из первых.

Для склейки доменов с WWW и без необходимо сначала прописать строку включения механизма преобразования ссылок в htaccess — напишите для этого RewriteEngine On. Далее следует директива такого вида: RewriteCond %{HTTP_HOST} ^www\.ваш_домен.ru [NC]. А после нее правило перенаправления: RewriteRule ^(.*)$ http://ваш_домен.ru/$1 [R=301,L]. Теперь, когда пользователи будут пытаться зайти на адрес www.ваш_домен.ru, сервер их автоматически будет перебрасывать на домен без www. Рекомендуется разместить это правило ближе к началу файла htaccess, поскольку директивы в конфигурациях Apache обрабатываются поочередно.

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

В том случае, если вы не желаете склеивать домены в связи с перманентным переездом на другой адрес, рекомендуется использовать модуль преобразований вместо с редиректом. Суть редиректа в том, что он не просто перенаправляет трафик, но и показывает поисковикам, что переадресация обоснована, и что сайт никаких правил не нарушает. В случае переезда на другой адрес навсегда используйте редирект 301. Если же вы планируете временно активировать перенаправление с одной страницы на другую, то пишите 302-й редирект, потому как старые ссылки сохранятся. Указывают редирект в пункте правил переадресации в квадратных скобках, например: [R=301,L].

Некоторые применяют модуль преобразования для добавления или удаления слэша «/» в конце ссылок. О пользе подобных мер ходит много споров в Интернете. Одни уверены, что слэш в конце ссылки никак не влияет на оптимизацию ресурса, а другие заверяют, что это весомый аргумент. Золотая середина этого спора в том, чтобы на вашем сайте не было одинаковых ссылок со слэшем и без него, а так можете не заморачиваться по этому поводу. Если же захотите убрать слэш с конца всех ссылок, то пропишите два условия и правило с 301 редиректом:

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

Проставленные точки в конце строк в htaccess прописывать не нужно, как и цифры. Кроме того, начать эти строки обязательно нужно с RewriteEngine On. Аналогичным способом вы сможете добавить слэши в конце ссылок. Для добавления слэшей в конце URL вам нужно будет прописать в условиях команду RewriteBase /.

Помимо обыкновенных переадресаций директиву правил преобразования ссылок RewriteRule используют и в более изощренных задачах. А для этого нужно уметь пользоваться директивой условий преобразования ссылок RewriteCond. Эти две опции неразлучны, поскольку без определения условий нельзя активировать действие при помощи модуль преобразования URL. Так, вы сможете не только переадресовать одну страницу на другую, но и закрыть доступ к некоторым частям сайта при помощи этих директив. К примеру, вы сможете временно заблокировать доступ к ресурсу во время обеденного перерыва и т. п. И хоть такая опция редко кому нужна, но все-таки есть вебмастера на планете, которые мечтают ее реализовать, но не знают как. А ведь для этого достаточно было изучить возможности файла htaccess и модуля rewrite!

Перенаправление пользователей можно организовать с гибкими условиями благодаря опции RewriteCond. Вы сможете переадресовывать не весь трафик, а только его часть, если эта часть будет соответствовать заданным требованиям. Именно таким образом при помощи файла htaccess и модуля rewrite организовывается мобильная версия сайта. Для этого в htaccess прописывают условие с указанием всех мобильных юзер-агентов, а в правиле указывают переадресацию на мобильную версию портала. А поскольку это преобразование не занимает много времени, такой способ перехода на мобильную версию является весьма популярным в Интернете.

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

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

За время существования Интернета множество методов раскрутки сайтов погибло. Один из таких методов — это переадресация страниц на другие домены или сайты. Было бы очень легко раскрутить сайт, если бы можно было одного посетителя прогонять по всем страницам ресурса за один его переход. Тогда статистика отказов в Гугле бы падала, и PR рос. Но поисковые системы растут и умнеют не по дням, а по часам. Такие способы раскрутки уже давно пресекаются спайдерами. Владельцы сайтов, работающих по фишинговой схеме, быстро разочаровываются в своих методах продвижения ресурса — их веб-творение заносят под фильтр.

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

Похожие статьи

ОСТАВЬТЕ ОТВЕТ

Please enter your comment!
Please enter your name here