Поделиться через


Правило с картой перезаписи — шаблон правила

Руслан Якушев

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

Предварительные требования

Для этого пошагового руководства требуются следующие предварительные требования:

  1. IIS 7.0 или более поздней версии с включенной службой роли ASP.NET;
  2. Установлен выпуск Go Live модуля переопределения URL-адресов.

Настройка тестовой веб-страницы

Мы будем использовать простую тестовую страницу asp.net, чтобы убедиться, что правило, созданное шаблоном, работает правильно. Тестовая страница просто считывает переменные веб-сервера и выводит их значения в браузере.

Скопируйте следующий код ASP.NET и поместите его в папку %SystemDrive%\inetpub\wwwroot\ файла article.aspx:

<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>URL Rewrite Module Test</title>
</head>
<body>
      <h1>URL Rewrite Module Test Page</h1>
      <table>
            <tr>
                  <th>Server Variable</th>
                  <th>Value</th>
            </tr>
            <tr>
                  <td>Original URL: </td>
                  <td><%= Request.ServerVariables["HTTP_X_ORIGINAL_URL"] %></td>
            </tr>
            <tr>
                  <td>Final URL: </td>
                  <td><%= Request.ServerVariables["SCRIPT_NAME"] + "?" + Request.ServerVariables["QUERY_STRING"] %></td>
            </tr>
      </table>
</body>
</html>

После копирования этого файла перейдите по адресу http://localhost/article.aspx и проверка, что страница была правильно отображена в браузере.

Снимок экрана: веб-страница теста модуля переопределения url-адреса.

Использование шаблона правила для создания правила перезаписи

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

Чтобы использовать этот шаблон, выполните следующие действия:

  1. Перейдите в диспетчер IIS.

  2. Выберите "Веб-сайт по умолчанию"

  3. В представлении функций щелкните "Переопределение URL-адресов".
    Снимок экрана начального веб-сайта по умолчанию с выделенным параметром переопределения URL-адреса.

  4. В области "Действия" справа щелкните "Добавить правила..."
    Снимок экрана: экран переопределения URL-адреса с фокусом на параметре

  5. В диалоговом окне "Добавление правил" выберите "Правило с картой перезаписи" и нажмите кнопку "ОК".:
    Снимок экрана: диалоговое окно добавления правил с выделенным параметром

  6. В диалоговом окне "Добавление правила с картой перезаписи" выберите "Перезаписать" в раскрывающемся списке. В поле со списком "Выбор карты перезаписи:" укажите имя новой карты перезаписи как StaticRewrites.
    Снимок экрана: диалоговое окно добавления правила с переопределением карты.

  7. Нажмите кнопку "ОК". При этом будет создана карта перезаписи с заданным именем и правило перезаписи с именем "Правило перезаписи 1 для StaticRewrites", которое ссылается на эту карту перезаписи.

  8. После нажатия кнопки "ОК" вы перейдете на страницу, где можно указать записи сопоставления для карты перезаписи. Щелкните "Добавить запись сопоставления..." в области Действия справа, а затем введите исходное и новое значение для записи сопоставления как "/article1" и "/article.aspx?id=1&title=some-title" соответственно.
    Снимок экрана: диалоговое окно добавления записи сопоставления с полями Исходное значение и Новое значение.

  9. Повторите предыдущий шаг, чтобы добавить еще две записи сопоставления, как показано ниже.

    Исходное значение: Новое значение:
    /some-title /article.aspx?id=1&title=some-title
    /post/some-title.html /article.aspx?id=1&title=some-title

После выполнения этих действий вы увидите следующее правило перезаписи сопоставления и перезаписи, созданное в C:\inetpub\wwwroot\web.config файле .

<rewrite>
    <rewriteMaps>
        <rewriteMap name="StaticRewrites">
            <add key="/article1" value="/article.aspx?id=1&amp;title=some-title" />
            <add key="/some-title" value="/article.aspx?id=1&amp;title=some-title" />
            <add key="/post/some-title.html" value="/article.aspx?id=1&amp;title=some-title" />
        </rewriteMap>
    </rewriteMaps>
    <rules>
        <rule name="Rewrite Rule 1 for StaticRewrites" stopProcessing="true">
            <match url=".*" />
            <conditions>
                <add input="{StaticRewrites:{REQUEST_URI}}" pattern="(.+)" />
            </conditions>
            <action type="Rewrite" url="{C:1}" appendQueryString="False"/>
        </rule>
    </rules>
</rewrite>

Тестирование правила

Чтобы протестировать созданное правило перезаписи, использующее карту StaticRewrites, откройте веб-браузер и запросите любой из следующих URL-адресов:

http://localhost/article1
http://localhost/some-title
http://localhost/post/some-title.html

Любой из указанных выше URL-адресов должен привести к перезаписи URL-адреса в соответствии с сопоставлениями, определенными в схеме перезаписи. Результаты должны выглядеть следующим образом:

Снимок экрана: страница теста модуля переопределения URL-адреса, на которой показаны поля

Сводка

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