Заказать услугу
  • +38 099 227-70-70
  • +38 097 770-63-63

Немного о синтаксисе регулярных выражений в файле Apache.htaccess

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

  • Круглые скобки () используются для выделения групп символов.

  • Символ ^ обозначает начало строки.

  • Символ $ обозначает конец строки.

  • Символ . обозначает любой символ.

  • Символ | обозначает альтернативу. Например, выражения "A|B" и "(ABC|DEF)" означают "A или B" и "ABC или DEF" соответственно.

  • Символ ? ставится после символа (или группы символов), который может как присутствовать, так и отсутствовать. Например, выражению "jpe?g" подойдет и строка "jpg", и строка "jpeg". Пример выражения с группой символов: "super-(puper-)?site".

  • Символ * ставится после символа (или группы символов), который может отсутствовать или присутствовать неограниченное число раз подряд. Например, выражению "jpe*g" подойдут строки "jpg", "jpeg" и "jpeeeeeeg".

  • Символ + действует аналогично символу * с той лишь разницей, что предшествующий ему символ обязательно должен присутствовать хотя бы один раз. Например, выражению "jpe+g" подойдут строки "jpeg" и "jpeeeeg", но не "jpg".

  • Квадратные скобки [] используются для перечисления допустимых символов. Например, выражение "[abc]" равносильно выражению "a|b|c", но вариант с квадратными скобками обычно является более оптимальным по быстродействию. Внутри скобок можно использовать диапазоны: например, выражение "[0-9]" равносильно выражению "[0123456789]". Если символы внутри квадратных скобок начинаются с символа ^, это означает любой символ, кроме перечисленных в скобках. Например, выражение "[^0-9]+" означает строку из любых символов, кроме цифр.

  • Символ \ ставится перед спецсимволами, если они нужны в своем первозданном виде. Например, выражению "jpe\+g" соответствует только одна строка "jpe+g".

  • Все, что расположено после символа ‘#’, считается комментарием.

Пример фрагмента файла .htaccess для ЧПУ

  • AddDefaultCharset utf-8
  • Options +FollowSymLinks
  • RewriteEngine On
  • RewriteBase /
  • RewriteRule ^([a-zA-Z0-9_-]+)/*$ index.php/$1
  • RewriteRule ^(article|news)/(.+).html$ index.php/$1?view=$1&id=$2
  • RewriteRule ^(book)/(.+).html$ index.php/$1?view=$1&book_id=$2
  • RewriteRule ^(catalog)/(.+).htm$ index.php/$1?view=$1&id=$2
  • RewriteRule ^(catalog)/(.+).html$ index.php/$1?view=$1&parent_id=$2
  • RewriteRule ^(catalog)/(.+).html/([0-9]+)$ index.php/$1?view=$1&parent_id=$2&step=$3
  • RewriteRule ^(search)/(.+)$ index.php/$1?view=$1&text=$2
  • RewriteRule ^([a-zA-Z0-9_-]+)/([0-9]+)$ index.php/$1?view=$1&step=$2
  • RewriteCond %{REQUEST_FILENAME} !-f
  • RewriteCond %{REQUEST_FILENAME} !-d
  • RewriteCond %{REQUEST_URI} !^/index.php
  • RewriteCond %{REQUEST_URI} (/|\.php|\.html|\.htm|\.feed|\.pdf|\.raw|/[^.]*)$ [NC]
  • RewriteRule .* — [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]

AddDefaultCharset utf-8 — Установить кодировку utf-8

Options +FollowSymLinks — Следовать по символьным ссылкам

RewriteEngine On — Включить правила перенаправления

RewriteBase / — Установить путь хоста сайта в / (многие быдло-хостинги добавляют к хосту лишний index.php/, который нарушает работы сайта)

RewriteRule ^([a-zA-Z0-9_-]+)/*$ index.php/$1 — Если сервер видит строчку типа news или news/, где в качестве news может быть любой набор символов латиницы, цифор, тирэ и подчёркивания — заменяет его на index.php/news, В браузерной строке будет отображаться первый вариант, а сервер будет видить второй вариант.

RewriteRule ^(catalog)/(.+).html/([0-9]+)$ index.php/$1?view=$1&parent_id=$2&step=$3 — Заменяет строчку вида catalog/что_угодно.html/2 В строку вида index.php/catalog?view=catalog&parent_id=что_угодно&step=2 Где $1 — первое выражение в скобках, всегда будет равно строке catalog $2 — втрое выражение в скобках может состоять из любого набора букв и символов, включая кириллицу и любые печатаемые символы из кодировки utf-8, за исключением слэша / и набора символов .html

И так далее.

Посты этой рубрики посвящены инструментам и стратегиям интернет-маркетинга, призванным увеличить конверсию сайта. Статьи будут интересны и полезны нынешним и будущим владельцам онлайн-бизнеса.
Интересуют последние веяния в дизайне сайтов и айдентики? Хотите правильно сочетать цвета и шрифты? Тогда вам сюда.
В рубрике «Разбор заплывов» специалисты студии Webakula делятся не только своими опытом, наблюдениями, выводами, но и практическими советами.
Рубрика поможет разобраться с базовыми терминами интернет-маркетинга, веб-разработки и дизайна. Статьи пригодятся любознательным индивидуумам, которым не безразлична тема сайтостроения.
Мы рады познакомиться и поделиться информацией о насыщенных буднях и ярких выходных компании Webakula с нашими клиентами, читателями и случайными «прохожими». Заходите, располагайтесь, чувствуйте себя, как дома :)