Правило с картой перезаписи — шаблон правила
Шаблоны правил используются для простого способа создания одного или нескольких правил перезаписи для определенного сценария. Модуль переопределения URL-адресов содержит несколько шаблонов правил для некоторых распространенных сценариев использования. Кроме того, пользовательский интерфейс модуля переопределения URL-адресов предоставляет платформу для подключения пользовательских шаблонов правил. В этом пошаговом руководстве показано, как использовать шаблон "Правило с картой перезаписи", который входит в модуль переопределения URL-адресов.
Предварительные требования
Для этого пошагового руководства требуются следующие предварительные требования:
- IIS 7.0 или более поздней версии с включенной службой роли ASP.NET;
- Установлен выпуск 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-адресов.
Чтобы использовать этот шаблон, выполните следующие действия:
Перейдите в диспетчер IIS.
Выберите "Веб-сайт по умолчанию"
В представлении функций щелкните "Переопределение URL-адресов".
В диалоговом окне "Добавление правил" выберите "Правило с картой перезаписи" и нажмите кнопку "ОК".:
В диалоговом окне "Добавление правила с картой перезаписи" выберите "Перезаписать" в раскрывающемся списке. В поле со списком "Выбор карты перезаписи:" укажите имя новой карты перезаписи как StaticRewrites.
Нажмите кнопку "ОК". При этом будет создана карта перезаписи с заданным именем и правило перезаписи с именем "Правило перезаписи 1 для StaticRewrites", которое ссылается на эту карту перезаписи.
После нажатия кнопки "ОК" вы перейдете на страницу, где можно указать записи сопоставления для карты перезаписи. Щелкните "Добавить запись сопоставления..." в области Действия справа, а затем введите исходное и новое значение для записи сопоставления как "/article1" и "/article.aspx?id=1&title=some-title" соответственно.
Повторите предыдущий шаг, чтобы добавить еще две записи сопоставления, как показано ниже.
Исходное значение: Новое значение: /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&title=some-title" />
<add key="/some-title" value="/article.aspx?id=1&title=some-title" />
<add key="/post/some-title.html" value="/article.aspx?id=1&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-адресов. Этот шаблон правила можно использовать для создания правила и сопоставления заполнителей, которые могут содержать большое количество статических сопоставлений перезаписи и перенаправления для веб-приложения.