- Что такое ЧПУ ссылки. Как настроить ЧПУ URL на сайте
- Значение ЧПУ для SEO
- Виды ЧПУ (SEF-URLs)
- Транслит
- Латиница
- Кириллица
- Какой тип ЧПУ выбрать для сайта
- Как сделать ЧПУ ссылку
- Длина ЧПУ
- Разделение слов – какие символы лучше использовать
- Ошибки – чего не должно быть в ЧПУ
- Настройка ЧПУ ссылок в WordPress
- 5 причин использовать ЧПУ-адреса страниц и все про SEO Friendly URLs
- Что такое ЧПУ и причем тут SEO
- Как использовать ЧеловекоПонятные УРЛы
- Структура и шаблоны ЧПУ
- ЧПУ транслитом
- ЧПУ латиницей
- ЧПУ кириллицей
- Пробелы, нижнее подчеркивание или дефис (тире) в ЧПУ
- ЧПУ картинок, видео, документов
- Подведем итог
- ЧПУ своими руками — как сделать SEF ссылки?
- Что такое ЧПУ?
- Какие преимущества дают SEF URL?
- Недостатки ЧПУ ссылок
- Когда ЧПУ не нужны?
- Что ещё нужно знать о ЧПУ?
- Коротко: в чём вся суть?
- Создание SEF ссылок с помощью mod_rewrite
- Правила и условия mod_rewrite
- Квантификаторы или кванторы
- Экранирование
- Ограничение начала и конца строки (маркеры)
- Обратные связи в mod_rewrite
- Флаги
- Живой пример использования mod_rewrite
Что такое ЧПУ ссылки. Как настроить ЧПУ URL на сайте
ЧПУ (человекопонятный URL, семантический URL, англ: SEF – Search Engine Friendly URL) – ссылка, состоящая из слов, которые пользователь может прочесть и понять, куда ведет путь. ЧПУ отражает структуру сайта и используется вместо набора идентификаторов.
Идентификатор выглядит так:
ЧПУ (SEF-URL) нравятся пользователям, так как еще до перехода по ссылке понятно, о чем будет речь на странице. С их помощью проще разобраться в структуре сайта, запомнить и набрать вручную, если вдруг понадобится.
Ссылки из набора символов выглядят сложно и подозрительно, по ним переходить не хочется. Даже поисковые боты индексирую такие ссылки хуже, чем человекопонятные урл.
Значение ЧПУ для SEO
Страницы с грамотным ЧПУ повышаются в поисковой выдаче, так как содержат ключевые слова и отражают суть контента.
Пользователь легко находит нужную информацию на сайте, если все его урл составлены грамотно и понятно. ЧПУ ссылками удобно делиться в мессенджерах и соцсетях и на других сайтах.
SEF-URLs нужно создавать сразу же, с первого дня жизни сайта. Если менять их потом, то рискуете потерять трафик и пропасть из выдачи, пока поисковые боты заново не проиндексируют страницы. А вот полезная статья об индексации страниц. И обратите внимание на ее урл😉
Поисковые боты любят ЧПУ URL, ведь так они понимают, что владельцы сайта настроены на взаимопонимание с пользователем, а не просто закидывают контентом под непонятными номерами. Роботы быстрее индексируют такие страницы и повышают ранжирование.
Настройка ЧПУ для адресов внутренних страниц входит в SEO-чеклист любого SEO-специалиста.
Виды ЧПУ (SEF-URLs)
Для русскоязычного сегмента интернета есть три вида ЧПУ:
Чем же они отличаются, какие плюсы и минусы использования каждого варианта?
Транслит
Транслит (транслитерация) – запись русских слов символами латиницы.
Vygljadit eto vot tak.
- латиница универсальна для всех поисковиков;
- транслит легко читать русскоязычным пользователям.
Из минусов можно выделить то, что транслит выглядит несколько неэстетично.
Есть множество сервисов транслитерации. Вот примеры бесплатных:
Латиница
Латиница – перевод слова на английский язык.
Его знают большинство пользователей, а те, кто не знают, уже привыкли к разделам сайта main, map, catalog и легко смогут понять, в каком месте они находятся.
Латиница хороша для интернет-магазинов и разделов сайта, название которых можно прописать коротко. С другой стороны, если вы станете переводить длинный заголовок страницы полностью, уровень понимания снизится среди пользователей, которые не знают английского.
Кириллица
Кириллица – запись урл как он есть, на русском.
Ее часто используют для сайтов на домене .рф. Смотрите, как удобно бродить по русскоязычной Википедии.
Однако, у кириллицы может возникнуть проблема с кодированием ссылки. Если скопировать ссылку из примера и вставить в документ, то выходит та самая непонятная тарабарщина, от которой мы хотим избавиться при помощи ЧПУ:
Какой тип ЧПУ выбрать для сайта
Сразу ответим на вопрос: транслит будет универсальным вариантом. Яндекс неплохо ранжирует ссылки латиницей, но на территории РФ предпочитает транслит.
Существуют специальные сервисы и плагины для транслитерации. Если у вас сайт на CMS (системе управления содержимым), то можно один раз настроить автоматическую транслитерацию урл через плагин. Об этом расскажем чуть ниже.
Google хуже всех воспринимает кириллицу, не забываем и о проблемах с кодированием. При получении обратных ссылок на сайт, вебмастера более активно ставят ссылки, написанные транслитом или латиницей.
Латиница универсальна, но английский могут просто не понять.
Как сделать ЧПУ ссылку
Ваши ЧПУ url зависят от CMS, структуры ресурса, тематики. Но шаблоны и примеры все же есть.
Важно! В ЧПУ ссылках приветствуется использование ключевых слов.
Можно использовать короткий прямой адрес. Например, для интернет-магазина он будет выглядеть так:
Для пользователей также удобно, когда в ссылке прописана структура. Например:
Длина ЧПУ
Длина ссылки важна для пользователей. Ссылка, которая выходит из видимой части адресной строки, не нравится пользователям, при копировании на другие ресурсы она займет много места и будет смотреться некрасиво.
Удобные ЧПУ урлы состоят из 2-3 слов. Оптимальная длина адреса – 75 символов.
Разделение слов – какие символы лучше использовать
Разделять слова в ЧПУ ссылках можно дефисом “-” и нижним подчеркиванием “_”. Например:
Выбирайте один вариант и используйте его для всего сайта.
Пробелов быть не должно, как и других лишних знаков. Только буквы латиницы или кириллицы, цифры, дефис, нижнее подчеркивание. Использовать заглавные буквы в урл тоже не рекомендуется.
Если нужно в адресе указать параметры, например гаджета, прописывайте их через латинскую “x”: 160x70x7.
Ошибки – чего не должно быть в ЧПУ
- длины больше 90 символов;
- пробелов, лишних символов;
- смеси латиницы и транслита, транслита и кириллицы и т.п.
Настройка ЧПУ ссылок в WordPress
В настройках нам нужно меню “постоянные ссылки”.
Здесь в виде ссылки указываем название записи. Теперь наши ссылки будут формироваться автоматически, но пока кириллицей.
Чтобы получить транслит, добавляем плагин Cyr to Lat enhanced в меню плагинов. Устанавливаем, активируем и готово! Теперь наши ЧПУ ссылки будут переводиться в транслит автоматически.
Как видим, ЧПУ ссылки полезны не только для положительного восприятия ресурса пользователями, для удобства и красоты, но и для SEO. Да, стоит с самого начала использовать на сайте ЧПУ, но это не значит, что есть моменты в работе сайта, когда переходить на них “уже поздно”.
Добавим, что ЧПУ стоит прописывать не только для самих страниц, но также и для изображений и других файлов.
Источник
5 причин использовать ЧПУ-адреса страниц и все про SEO Friendly URLs
Правильный ЧПУ адрес сайта позволяет повлиять на SEO вашего сайта самым непосредственным образом. От того, какими будут URL страниц сайта, зависит не только вид сайта в поиске, но многие другие факторы SEO. Как создать грамотный ЧПУ страницы и как использовать ЧПУ в продвижении сайта вы узнаете в этой статье.
Что такое ЧПУ и причем тут SEO
ЧПУ адрес или ЧеловекоПонятный УРЛ — это адрес страницы, который прост и понятен для посетителя сайта и поисковых систем (Search Engine Friendly URL). Давайте разберемся во всех преимуществах ЧПУ адресов, рассмотрим примеры ЧПУ для всевозможных обстоятельств и научимся правильно использовать ЧеловекоПонятные УРЛы в любых ситуациях. Я часто пишу о том, что SEO — это комплекс множества факторов, и одним из таких факторов является URL-адрес страницы.
Не буду тратить время и перейду сразу к примерам.
Пример не ЧПУ адреса страницы:
Еще пример плохого ЧПУ:
Последний URL страницы выглядит и читается проще прочих.
Как использовать ЧеловекоПонятные УРЛы
Первое, что приходит в голову — ключевые слова! Если человек ищет резиновую утку, дайте ему простой адрес:
Теперь, когда кто-то поставит на вас адресную ссылку, она будет нести в себе ключевые слова, а не номер id страницы, который ничего не означает.
Еще ЧПУ ссылки легко запоминаются:
Такой URL легко ввести вручную и сразу понятно, что нас там ждет SEO блог. То есть, посредством ЧПУ адреса, мы предоставляем посетителям больше информации о странице, на которую ведет ссылка. А ссылка несущая в себе больше информации — полезнее и ценнее.
Если ЧПУ ссылка содержит ключевые слова, то вся ссылка в сниппете либо же ее часть выделяется жирным. Это делает ссылку на сайт более заметной и увеличивает CTR сниппета страницы в поиске (кликать будут чаще, чем на конкурентов).
Скрин 1. Яндекс разбирается в свежей рыбе.
Скрин 2. А Google знает толк в КамАЗах.
Структура и шаблоны ЧПУ
Структуру ЧеловекоПонятных УРЛов можно оформить по-разному. Какой будет структура ЧПУ может зависеть от особенностей работы движка сайта, тематики или общей структуры сайта. Вот несколько примеров самых распространенных ЧПУ шаблонов.
Пример прямого ЧПУ адреса:
Пример прямого ЧПУ адреса с расширением:
Такой адрес обычно имеют статические страницы вроде страницы «Контакты».
Пример ЧПУ категорий интернет-магазина:
Пример ЧПУ структуры блога:
Заметьте, как удобно извлекать из такого адреса данные для запроса и как сложно потом перемещать страницы из одной категории в другую.
Чтобы корректно переместить страницы придется использовать 301 редирект, иначе исходная страница станет недоступной, а страница по новому адресу окажется дубликатом исходной, которая теперь недоступна.
Поисковики не оценят такие маневры и страница «вылетит» из поиска со всем вытекающими.
Постарайтесь не углублять структуру адресов, чаще всего достаточно глубины одной категории и множества категорий:
Ведь чем дальше от названия домена сайта категория, тем ниже ее значимость для поисковых систем.
ЧПУ транслитом
Поисковые системы понимают любую транслитезацию по ГОСТу. Транслитезация оптимальна для создания ЧПУ, так как символы латиницы универсальны и не создают проблем при обработке. Кириллица, переведенная в транслит, достаточно легко читается и способна быстро предоставлять информацию о названии документа как людям, так и поисковым системам. Плюс транслита может быть в том, что сайт, использующий транслит в ЧПУ, в том же языковом регионе может иметь больший приоритет, чем сайт использующий латиницу.
Скрин 3. Выделение Яндексом транслитизированного ЧПУ во всей красе.
Ну, а если вашей творческой частичке не нравится, как выглядят названия страниц транслитом — пишите ЧПУ латиницей.
ЧПУ латиницей
Латиница универсальна, ее легко обрабатывают поисковые системы, понимает половина мира и большая часть Россиян. А такие слова как shop, contacts или delivery уже давно близки и знакомы всем. Так что не бойтесь использовать английские слова в названии страниц и других документов, если такой вид ЧПУ кажется вам более подходящим.
Скрин 4. Как видно из скриншота, Google выделяет и латиницу, и кириллицу.
ЧПУ кириллицей
Многие сайты используют кириллические ЧПУ, например, Википедия. Только есть одна проблема — кодирование кириллических символов в URL при копировании ссылки.
Фактически, кириллический ЧПУ:
Выглядит совсем не ЧПУ:
Скрин 5. Google одобряет кириллический ЧПУ.
Пробелы, нижнее подчеркивание или дефис (тире) в ЧПУ
Не используйте в ЧПУ адресах пробелы! Пробелы лучше заменять на «-» или «_». А что лучше использовать в названии ЧПУ вместо пробела: тире (дефис) или нижнее подчеркивание? Давайте сравним.
Тире (дефис) в ЧПУ устанавливается нажатием одной клавиши минус и служит разделителем. Кликните два раза подряд на слово, и оно выделится ровно до появления тире.
Функционально дефис выполняет ту же роль, что и пробел, однако, он может иметь собственное смысловое значение к конструкции ЧПУ.
Нижнее подчеркивание в ЧПУ требует нажатия комбинации двух клавиш Shift и минус (+1 лишнее действие). Кликните два раза подряд на любую часть строки и выделится вся строка как будто это одно слово.
Нижнее подчеркивание не имеет собственного смыслового значения в конструкции ЧПУ и может использоваться как замена пробела.
Поисковые системы понимают и тире «-», и нижнее подчеркивание «_». Используйте то, что ближе вам.
ЧПУ картинок, видео, документов
Когда поисковая система находит изображение или любой другой документ, она скачивает файл и анализирует всю информацию о нем. Название файла имеет большое значение, так как сообщает о его содержимом, что в случае с изображениями может быть единственным источником информации о нем. Аналогично ЧПУ адресов страниц, если изображение имеет название:
то оно передает меньше информации о своем содержимом, нежели изображение с ЧПУ названием:
Поисковые системы могут различить содержимое изображения по тематике страницы, по тексту, который окружает картинку, по атрибуту alt-картинки, по названию картинки, метаданным изображения, по сравнению изображения с другими похожими изображениями и т.д. Наша задача — придать как можно больше информации о изображении поисковой системе, чтобы она лучше индексировалась и передавала больше ценности контенту и странице. По сути, изображение на сайте тоже имеет свой уникальный адрес, является документом, как и страница сайта, и к нему применяются те же требования по ЧПУ. Так что ЧПУ картинок — мастхев.
Обязательно читайте подробную статью про SEO оптимизацию картинок.
Подведем итог
- Мы можем использовать ключевые слова в названии страниц, чтобы упростить навигацию на сайте и понимание содержимого ссылки на сайт.
- Поисковые системы понимают ключевые слова в ЧПУ, выделяют ЧПУ адреса в поиске, что в целом повышает релевантность страницы.
- Посетители проще запоминают названия страниц, чаще заходят напрямую и делятся страницами с ЧПУ адресами.
- ЧПУ повышает CTR сниппета страницы в поиске, что улучшает поведенческие факторы.
- ЧПУ улучшает SEO страниц, изображений и других документов, так как является значительным фактором поисковой оптимизации.
Еще нужны причины, чтобы использовать ЧПУ?
Вот вроде бы и все, если что забыл — пишите в комментах.
Ставьте лайк, сохраняйте себе на стену.
Источник
ЧПУ своими руками — как сделать SEF ссылки?
Здравствуйте дорогие гости и постоянные читатели блога о создании сайтов – Site on! В одной из предыдущих статей этого раздела я обещал вам рассказать, как всего за пару минут можно создать собственные ЧПУ ссылки. Несмотря на то, что статья может показаться вам объёмной, а для некоторых и сложной – я надеюсь, когда дочитаете её до конца, вы согласитесь, что в создании ЧПУ действительно нет ничего сверхъестественного.
Что такое ЧПУ?
ЧПУ – это исковерканная англоязычная аббревиатура SEF URL (search engines friendly url). Она обозначает адреса ссылок, которые дружелюбны для поисковых систем. О ЧПУ я также писал в статье про внутреннюю оптимизацию сайта. В русскоязычном варианте SEF URL пишется как ЧПУ – человеко-понятные url. Что всё это значит? Это значит, что адреса ваших ссылок будут иметь осознанный текст, а не технический мусор, за примером можете сходить по ссылке выше.
Какие преимущества дают SEF URL?
Во-первых, очевидно, что ЧПУ ссылки уже в самом своём адресе могут содержать полезную для пользователя информацию. Из такого адреса сразу понятно, о чём будет статья или страница в целом.
Во-вторых, SEO. Такие ссылки приветствуются поисковыми системам, пару лет назад они могли бы дать вам значительный перевес над конкурентами. Сегодня подобные ссылки являются само собой разумеющимися, сейчас редко встретишь сайты с не ЧПУ ссылками, однако они до сих пор есть.
В-третьих, это престиж. Когда я захожу на сайты, где вместо понятного и красивого адреса в ссылках содержится разного рода мусор, а то и засекреченная информация – я задаюсь вопросом: «Вроде бы приличный сайт, но почему разработчики не сделали ЧПУ? Неужели это было так сложно? Может им настолько нет дела до подобных вещей или просто не хватает знаний и навыков?». В общем, для меня такие сайты большая загадка.
В-четвёртых, безопасность. Сайты с ЧПУ ссылками не содержат в своём адресе техническую информацию переданную методом GET (уроки PHP), которую можно запросто использовать для взлома сайта.
И последнее: ЧПУ – как средство навигации. Если ссылка понятна пользователю, то он сам может переходить по разделам сайта, просто редактируя ваш URL. Например:
Если удалить из данной ссылки её последнюю часть (2-sublime-text-2), то мы попадём в раздел, к которому относится данная статья:
В данном случае это раздел «Инструменты». То есть благодаря SEF ссылкам мы можем построить понятную людям и роботам иерархию нашего сайта, что опять-таки будет полезно и для посетителей и для продвижения в поисковых системах.
Недостатки ЧПУ ссылок
Первое: возможно, вам придётся повозиться и даже помучаться, чтобы их настроить или вовсе сделать с нуля.
Второе: ваш сайт станет дольше грузится, а именно, на пару десятитысячных секунды 🙂 Это связано с тем, что для работы ЧПУ подключается специальный модуль веб-сервера Apache – mod_rewrite, которому понадобится это «огромное» количество времени на обработку ссылок.
Когда ЧПУ не нужны?
ЧПУ ссылки могут быть и лишними, например, если у вас закрытый корпоративный портал, где вся работа осуществляется только авторизованными пользователями, а для всех остальных, в том числе и для поисковых роботов доступ закрыт.
Также ЧПУ будет излишеством в back-end вашего сайта, то есть в панели администратора.
Что ещё нужно знать о ЧПУ?
Во всех актуальных версиях CMS данная проблема уже решена. Всё что вам нужно, чтобы сделать ЧПУ ссылки, это лишь включить соответствующие настройки в движке вашего сайта.
Но что если мы имеем дело с сайтом на чистом PHP, без CMS, или же хотим разработать свою собственную CMS в которой хотим сделать SEF URL? Для подобных случаев, а также для людей, которые хотят углубиться и понять всю суть преобразований обычной ссылки в ЧПУ, я и написал остальную часть статьи. Если вы читали мои предыдущие статьи, то знаете, что мой блог как раз относится к этой категории, то есть сайтам, написанным с нуля на PHP, без использования готовых CMS.
Ах да, ещё один момент: из личного опыта не советую делать кириллических URL.
Коротко: в чём вся суть?
Пишу для тех, кто совсем не в курсе дел. Везде в наших тегах гиперссылки мы будем указывать ЧПУ адреса:
Суть в том, чтобы из красивого и понятного человеку URL (ЧПУ) сделать на лету URL, который будет полезен разработчику PHP (не ЧПУ):
При этом всем на свете (посетителям, поисковым системам, всем) будет видна именно ЧПУ ссылка, но мы как разработчики PHP будем знать, что таит в себе URL на самом деле. В конце статьи, для полного понимания, я покажу все этапы, как ЧПУ работают у меня на блоге.
Создание SEF ссылок с помощью mod_rewrite
mod_rewrite – это модуль веб-сервера Apache, предназначенный для перезаписи URL. Естественно, для начала работы вы должны включить этот модуль в настройках Apache, эти настройки находятся в файле httpd.conf, вам нужно будет раскомментировать строку с именем данного модуля. У 99% хостинг-провайдеров он включён, за исключением совсем ужасных хостингов. Кстати говоря, используя Denwer, у меня не получилось нормально настроить собственные ЧПУ, мне не захотелось долго искать в чём именно проблема (мешают собственные редиректы Денвера) и я установил Апач отдельно. Для тех, кто не знает, как установить сервер Апач не используя Денвер, я напишу инструкцию в одной из будущих статей. А здесь мы продолжаем разбирать наши ЧПУ.
Все наши правила преобразований URL записываются в небезызвестный файл .htaccess, который должен лежать в корне нашего сайта.
Для корректной работы mod_rewrite в нём обязательно должна быть написана следующая строка:
Далее подключаем наш модуль rewrite к конкретной папке, то есть к папке, в которой лежит наш .htaccess:
Имеем следующий файл .htaccess:
Правила и условия mod_rewrite
Все правила записываются с помощью команды RewriteRule, после которой ставится пробел и записывается шаблон ваших ЧПУ с помощью регулярных выражений, далее ставится ещё один пробел и указывается строка, в которую мы хотим преобразовать данный шаблон, где $1,$2,…$n – наши переменные. Более подробно о регулярных выражениях вы можете узнать по приведённой выше ссылке, а также далее в данной статье. Давайте рассмотрим пример:
Где ^useful/([a-z]*) – это шаблон ожидаемого url,
а /index.php?category=useful&article=$1 – это то, во что мы его конвертируем, если пришедший URL подошёл под шаблон.
При этом $1 равен тому, что написано в круглых скобках, то есть $1 = [a-z]* Если бы круглые скобки встречались 2 раза, то у нас были бы переменная $1 и $2, если круглые скобки встречаются 3 раза, то переменные $1, $2, $3 и так далее. При этом переменные создаются в том же порядке, как идут круглые скобочки.
Понятно? – молодцы. Непонятно? — идёмте дальше, мы ещё к этому вернёмся. Также хочу обратить ваше внимание на то, что для лучшего понимания статьи, вы уже должны обладать начальными знаниями о PHP, а также о работе с методами GET и POST. Продолжаем.
Для того чтобы наш обработчик, то есть mod_rewrite не срабатывал каждый раз без надобности, мы в RewriteRule указываем шаблон, которому должны соответствовать приходящие URL. Если URL не соответствует шаблону, то mod_rewrite просто не сработает и не преобразует пришедший SEF URL в URL, с которым мы можем работать.
То есть на данном этапе вам важно понять саму суть: в ЧПУ ссылках не передаются параметры, а без параметров мы не можем ничего сделать в PHP с этой ссылкой, поэтому с помощью mod_rewrite мы преобразуем ЧПУ ссылку без параметров в не ЧПУ ссылку с параметрами. Что такое параметры? В примере выше имеем 2 параметра:
Параметр category и параметр article.
Опять-таки обращаю ваше внимание, что про параметры вы уже должны были знать, я лишь вкратце вам напомнил.
В шаблонах мы можем использовать символы и символьные классы. Символ точки обозначает абсолютно любой символ.
- . – любой одиночный символ
- [redf] – это класс символов. Обозначает наличие одного из перечисленных символов с учётом регистра.
- [a-z] – класс символов. Обозначает наличие одного из символов в промежутки от a до z, то есть весь английский алфавит.
- [a-zA-Z] – то же самое, только без учёта регистра, то есть весь алфавит, включая и большие и маленькие буквы.
- Можно и с цифрами: 2
- Естественно, всё можно комбинировать: [a-zA-Z0-9]
- [^rewfad] – класс символов, но со знаком ^ внутри квадратных скобочек обозначает, что шаблон НЕ должен содержать данных символов.
- site|cite – обозначает альтернативу: подходит site или cite.
Квантификаторы или кванторы
Все предыдущие примеры обозначали один символ (одну единицу), а что если мы хотим показать, что символов из этого промежутка [a-zA-Z] может быть не один, а сколько угодно. Для этого мы должны использовать квантификаторы:
- ? — 0 или 1 символ из предшествующего текста (класса символов, символа и тд.)
- * — 0 или любое количество символов из предшествующего текста (n>0)
- + — 1 или любое количество символов из предшествующего текста (n>1)
- — ровно n символов, где n – конкретное число.
- — должно быть ровно 4 символа из предшествующего текста.
- — 4 или 5 символов
- — от нуля до 6 символов
- — от 4 до бесконечности символов
Примером может послужить наша уже известная строчка:
В которой мы применили квантификатор (квантор) звёздочку (*) после класса символов [a-z]. Это значит, что в нашем URL после useful/ могут находиться символы от a до z в любом количестве и, естественно, в любой последовательности, а могут и не быть вовсе. Домен в счёт не берём, он подразумевается сам по себе.
Экранирование
Также при составлении шаблона не стоит забывать и про экранирование. Если вы хотите заключить в класс символов, например, символ точки, то вам нужно её заэкранировать, так как без экранирования точка (служебный символ) обозначает абсолютно любой символ:
Тоже самое касается и квадратных скобочек, они у нас обозначают класс символов, поэтому если в вашем url могут быть квадратные скобочки их нужно заэкранировать:
Ограничение начала и конца строки (маркеры)
Для того чтобы указать начало или конец строки, без учёта домена, используются символы:
- ^ — начало URL
- $ — конец URL
То есть в нашем первом примере мы указали, что наш шаблон начинается именно с начала URL, а не откуда угодно (с середины, с конца):
Обращаю ваше внимание на то, что знак ^ внутри квадратных скобок обозначает отрицание, не путайте!
Обратные связи в mod_rewrite
$n – это наша «переменная» в круглых скобках, о них мы уже говорили. Работает для RewriteRule.
%n – то же самое, только в RewriteCond. RewriteCond мы ещё не рассматривали, он у нас впереди.
Итак, если RewriteRule – это наши правила преобразования URL, то RewriteCond – это условие, аналог if в PHP. RewriteCond нужно в ситуациях, когда вам необходимо выполнить URL преобразование (RewriteRule) только при выполнении какого-то условия.
У сервера есть свои собственные переменные, которые мы можем использовать в наших условиях RewriteCond:
Синтаксис применения серверных переменных таков:
Давайте составим наше первое условие:
Если посетитель зашёл с браузера Mozilla Firefox, то выполняем следующее правило. Как видите, в отличие от PHP мы не используем фигурные скобки для обрамления нашего правила, которое выполнится, если условие TRUE.
RewriteCond позволяет использовать операторы сравнения: (больше), = (равно). Также есть специальные значения, например:
- -d (является ли каталогом)
- -f (является ли файлом)
- -s (является ли файлом с ненулевым размером)
- ! – отрицание.
Флаги
- nocase|NC – можно писать либо nocase, либо NC, это одно и то же, обозначает регистро-независмость. То есть мы можем больше не писать:
Вместо этого написать так:
Если нужно поставить одновременно несколько флагов, ставим их через запятую, например:
Как вы уже могли догадаться, mod_rewrite можно использовать не только для ЧПУ, но и для многих других интересный целей, например, клоакинга – это метод чёрного SEO, когда по одному и тому же адресу посетителям отдаётся одна страница, а поисковым роботам совершенно другая. Ну и под конец статьи, я покажу вам живой пример использования всего написанного выше и как же это всё работает взаимодействуя с нашим PHP.
Живой пример использования mod_rewrite
Итак, вот какой вид имеет мой файл .htaccess:
Что происходит в этом ужасе? Для начала я проверяю, не набрал ли человек старой закалки мой адрес с www, если набрал, то перенаправляю его на тот же адрес, только без www. Зачем именно это нужно я напишу в одной из следующих статей, если коротко, то для SEO. После перенаправления с www на без www у нас заново считался наш файл .htaccess, поэтому всё начинается снова: проверяем, не пришёл ли нам УРЛ с www, в этот раз — нет. Далее (второй RewriteCond) мы проверяем, если наш УРЛ действительно без www, то делаем преобразования, а именно: заносим весь URL (без имени домена) в параметр article.
На этом работа .htaccess завершена и на сцену выходит PHP. Следующий код размещён в index.php:
О том, как работает конструкция switch, я подробно писал в статье по указанной ссылке. Вот и всё, дамы и господа! Наконец-то наша статья подошла к логическому завершению, и теперь вы сможете попрактиковать полученные знания. Я прощаюсь с вами до выхода новой статьи, а напоследок хочу привести интересную цитату:
«Несмотря на тонны примеров и документацию, mod_rewrite это Вуду. Чертовски клёвый Вуду, но все-таки Вуду.»
Источник