Блог вопиющего в пустыне

Как настроить ЧПУ Битрикс под IIS 7

Просмотров :  2276  |  Комментариев :  0

Поисковый запрос в интернете выдал однотипные рекомендации: либо через модуль переопределения URL-адресов (URL Rewrite), либо через файл web.config. Попробовал и так, и эдак. Не прокатило. Попробовал "Импортировать правила через mod-rewrite" из .htaccess в web.config с последующим удалением в web.config строк с ошибками. Та же "хрень". Потом,  копаясь где-то на "задворках" инета (не помню уже на каком портале) нашел подсказку, что надо ещё прописывать человеко-понятные URL-ы в файле urlrewrite.php. "Короче, Склифосовский", - теперь всё по порядку.

Устанавливаем модуль переопределения URL-адресов (URL Rewrite) и настраиваем в нём ЧПУ

Скачать его можно с портала Microsoft по адресу: https://www.iis.net/downloads/microsoft/url-rewrite. Если не получится скачать, можете взять отсюда: 32-битный или 64-битный. Устанавливаем. Заходим в Диспетчер служб IIS и запускаем "Переопределение URL-адресов".

модуль переопределения URL-адресов

В меню "Действие" - "Добавить правила" - "Правило для входящего трафика" выбрать "Пустое правило" - ОК


Заполняем форму, как показано на рисунке, после чего "Применить":

Форма правила для входящего трафика

В модуле появилось наше правило "bitrix rewrite URL":

Правило

Если нет желания заморачиваться с модулем переопределения URL-адресов, можете сделать то же самое через web.config

В корне Вашего сайта в текстовом редакторе открыть файл web.config. В раздел <system.webServer> добавляем подраздел <rewrite> отвечающий за переопределение URL-адресов, и в котором содержится функция "bitrix rewrite URL":

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        ...........
        <rewrite>
       <rules>
  <clear />
   <rule name="bitrix rewrite URL" enabled="true" stopProcessing="false">
                    <match url="^(.*)$" ignoreCase="false" />
                    <conditions logicalGrouping="MatchAll">
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                        <add input="{REQUEST_FILENAME}" pattern="/bitrix/urlrewrite.php$" ignoreCase="false" negate="true" />
                    </conditions>
                    <action type="Rewrite" url="/bitrix/urlrewrite.php" />
   </rule>           
          </rules>
        </rewrite>
     </system.webServer>
 </configuration>

В корне Вашего сайта в текстовом редакторе открыть файл urlrewrite.php. Если его нет, то создать.

В файл вставить строки по аналогии с приведенными ниже. Названия подразделов (например, /podgotovka-dokumentacii-o-zakupke/) необходимо копировать из строки "Символьный код", который генерировался при создании данной странички. Хотя, названия подразделов можно вообще не указывать, срабатывает и так: 'CONDITION' => '#^/services/#'.

<?php
$arUrlRewrite=array (
  0 =>
  array (
    'CONDITION' => '#^/services/podgotovka-dokumentacii-o-zakupke/#',
    'RULE' => '',
    'ID' => 'bitrix:news',
    'PATH' => '/services/index.php',
    'SORT' => 100,
  ),
  1 =>
  array (
    'CONDITION' => '#^/services/zajavki-zakupki/#',
    'RULE' => '',
    'ID' => 'bitrix:news',
    'PATH' => '/services/index.php',
    'SORT' => 100,
  ),
  2 =>
  array (
    'CONDITION' => '#^/services/provedenie-torgov/#',
    'RULE' => '',
    'ID' => 'bitrix:news',
    'PATH' => '/services/index.php',
    'SORT' => 100,
  ),
  3 =>
  array (
    'CONDITION' => '#^/services/zakupki-i-kontrolno-schetnaya-palata-bryanskoy-oblasti/#',
    'RULE' => '',
    'ID' => 'bitrix:news',
    'PATH' => '/services/index.php',
    'SORT' => 100,
  ),
  4 =>
  array (
    'CONDITION' => '#^/it-help/vba-excel-word/#',
    'RULE' => '',
    'ID' => 'bitrix:news',
    'PATH' => '/it-help/index.php',
    'SORT' => 100,
  ),
  5 =>
  array (
    'CONDITION' => '#^/it-help/razrabotka-sajta/#',
    'RULE' => '',
    'ID' => 'bitrix:news',
    'PATH' => '/it-help/index.php',
    'SORT' => 100,
  ),
  6 =>
  array (
    'CONDITION' => '#^/it-help/komputer-doktor/#',
    'RULE' => '',
    'ID' => 'bitrix:news',
    'PATH' => '/it-help/index.php',
    'SORT' => 100,
  ),
  7 =>
  array (
    'CONDITION' => '#^/it-help/sistemnomu-administratoru/#',
    'RULE' => '',
    'ID' => 'bitrix:news',
    'PATH' => '/it-help/index.php',
    'SORT' => 100,
  ),
  8 =>
  array (
    'CONDITION' => '#^/it-help/sql-server/#',
    'RULE' => '',
    'ID' => 'bitrix:news',
    'PATH' => '/it-help/index.php',
    'SORT' => 100,
  ),
  9 =>
  array (
    'CONDITION' => '#^/blog/#',
    'RULE' => '',
    'ID' => 'bitrix:news',
    'PATH' => '/blog/index.php',
    'SORT' => 100,
  ),
);
?>

Внимание! Файл urlrewrite.php должен находиться в корне Вашего сайта, несмотря на то, что в web.config-е и соответственно в модуле переопределения URL-адресов обозначена директория /bitrix/urlrewrite.php.



  • Комментарии
Загрузка комментариев...


Возврат к списку