Правила обработки адресов

Настройка поддержки ЧПУ производится для работающих проектов (вы должны установить обновление главного модуля до версии 5.1.8 и выше, поскольку в обновление ядра 5.1.8 включен механизм переопределения адресов для поддержки ЧПУ). Все, кто будет ставить новый дистрибутив, получат уже настроенную поддержку.

Понятие обработки адресов

Обработка адресов (UrlRewrite) применяется для того, чтобы скрипт мог отвечать не только по своему физическому, но и по любому другому указанному адресу. Например, можно задать такие настройки обработки адресов, что скрипт, лежащий в файле /fld/c.php и отвечающий по адресу:
     /fld/c.php?id=15
будет отвечать также по адресу:
     /catalog/15.php

Адрес, по которому будет отвечать скрипт, не должен физически существовать на сервере. Если такой адрес физически существует, то будет вызван скрипт по этому адресу. Система обработки адресов запущена в этом случае не будет.

Управление правилами преобразования адресов производится в панели управления на странице "Настройки - Обработка адресов": /bitrix/admin/urlrewrite_list.php.
Механизм переопределения адресов создан в основном для компонентов 2.0, поддерживающих режим ЧПУ. В то же время, данный обработчик можно использовать для переопределения любых URL, а не только связанных с компонентами.

При добавлении на страницу компонента с поддержкой ЧПУ (если файл сохраняется с помощью API), автоматически создается правило переопределения адреса. Если страница создается не с помощью API, а, например, записывается через FTP, то необходимо выполнить пересоздание правил (кнопка на панели инструментов на странице управления правилами).

Подключение механизма обработки адресов:

1. Если у вас на веб-сервере настроена обработка ошибки 404, например, для Apache установлена опция ErrorDocument или аналогичная инструкция прописана в файле .htaccess:
     ErrorDocument 404 /404.php
то вы должны изменить файл /404.php, вставив в самое начало файла команду:
    include_once( $_SERVER['DOCUMENT_ROOT']. '/bitrix/modules/main/include/urlrewrite.php' );

2. Если вы для Apache используете модуль mod_rewrite, то в его настройках вы можете указать (например, в файле .htaccess):
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !/bitrix/urlrewrite.php$
RewriteRule ^(.*)$ /bitrix/urlrewrite.php [L]
</IfModule>

После этих настроек будет работать штатный механизм поддержки ЧПУ для новых компонент.

Простой тест для проверки проведенной настройки:

1. Зайти на страницу "Настройки" - "Настройки продукта" - "Обработка адресов"

2. Выбирать пункт "Новая запись" и добавить:
   Условие: #^/sef_test/#
   Компонент: ничего не указываем
   Файл: /index.php (нужно указать файл, который фактически будет работать)
   Правило: ничего не указываем.
Сохранить изменения.

3. Перейти по адресу в разделе /sef_test/
    Например, http://localhost/sef_test/test.html

Если ЧПУ работает, то вы должны увидеть содержимое страницы, указанной в поле Файл в правиле переопределения.

Пример настройки ЧПУ для детальной страницы показа новостей

Для динамических страниц, содержащих в адресе параметр ID, можно создать правило, по которому адрес страницы для каждой новости будет включать значение ID в имени страницы, например, 234.html

Условие: #^/news/([0-9]+)\.html(\?.*)?$
Правило: /about/news/detail.php?ID=$1
Пример настройки адресов страниц .html вместо .php

В некоторых случаях необходимо использовать адреса страниц с расширением .html, соответствующее правило будет выглядеть следующим образом:

Условие: #^(.+)\.html(\?.*)?$#
Правило: $1.php
Обработка старых ссылок

При переносе информации со старого сайта на новый, часто необходимо сохранить в рабочем состоянии старые ссылки на некоторые материалы сайта. Например, страница может быть занесена в Избранное у посетителя, или проиндексирована поисковыми системами. Для таких ссылок необходимо задать условия, которые описывают соответствие страниц старого и нового сайта.

Например, так задается соответствие для старой страницы: about.html

Условие: #^/about.html(\?.*)?$#
Правило: /about/index.php

Поиск на сайте

  Неоказание помощи больному
  Медицинская помощь по системе ОМС. Куда жаловаться?
  Может ли больной знакомиться с медицинской документацией?
  Врачебная тайна
  Кто ответит за качество лечения по ОМС? Ответственность медицинских учреждений по ОМС
  Платные медицинские услуги. Вопросы права
  Медицинский Вуз и преподавательская работа
  Назначение кодеинсодержащих препаратов
  Не приехала скорая помощь и отказ в госпитализации в приемном отделении
  Нужны ли нам БАДы? Есть ли от БАДов польза? И качество лекарств в России
  Как защитить себя и близких перед врачами?
  Судебно-медицинская экспертиза, заключение специалиста и судебно-медицинское исследование
  Ребенок в реанимации, - родитель рядом Советы адвоката
  Вопросы и ответы медицинского адвоката
  Вопросы медицинскому адвокату
  Какие бывают уголовные преступления в медицине?
  Распространенность и причины врачебных ошибок и медицинских нарушений
  Отказывают в медицинской помощи? Что делать?
  Врачебная ошибка
  Лечимся по-новому. ОМС
  Неоказание медицинской помощи больному, повлекшее его смерть
  Ст.109 УК РФ Смерть роженицы в стационаре
  Смерть ребенка, халатность участкового педиатра
  Преступная халатность врачей
  Неоказание помощи больному Статья 124 УК РФ. Кардиомиопатия, смерть
  Ст.124 УК РФ Смерть во время эпиприступа в стационаре
  Случай неоказания помощи больной, повлекшее смерть человека, ст.124 УК РФ Врач СМП отказал в помощи больной с ОИМ
  Случай причинения смерти по неосторожности, последствия врачебной ошибки. Ст.109 ч.2 УК РФ Тромбэмболия - инфаркт мозга во время плановой аппендэктомии
  Согласие донора, изъятие органов и цена жизни
  Адвокатская тайна. Адвокат обязан воздерживаться от распространения информации, ставшей ему известной от доверителя...