URL-адрес, понятный для пользователя — шаблон правила

Команда IIS

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

Необходимые условия

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

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

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

Мы будем использовать простую страницу 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>
            <tr>
                <td>Public Link: </td>
                <td><a href="<%= Request.ServerVariables["SCRIPT_NAME"] %>?<%= Request.ServerVariables["QUERY_STRING"] %>">Link URL</a></td>
            </tr>
        </table>
    </body>
</html>

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

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

Шаблон правила "Понятный для пользователей URL-адрес" можно использовать для создания перезаписи, перенаправления и исходящих правил, которые делают URL-адреса для динамического веб-приложения более понятными для пользователя и поисковой системы. Как правило, динамические веб-страницы учитывают параметры строки запроса при создании выходного HTML-кода. URL-адреса со строками запроса (например, http://contoso.com/articles.aspx?year=2008&month=11) менее удобны для использования и обмена, чем простые URL-адреса на основе иерархической структуры (например, http://contolso.com/articles/2008/11). Кроме того, некоторые обходчики поисковых систем могут игнорировать строку запроса при индексировании страниц веб-сайта. Шаблон правила помогает создать правило перезаписи, которое преобразует URL-адреса на основе иерархии в URL-адреса с помощью строк запроса. Templace также может, при необходимости, создать правило перенаправления, которое можно использовать для переадресации веб-клиентов с URL-адресов со строками запроса на чистые URL-адреса. Наконец, можно создать правило перезаписи для исходящих данных, которое заменяет все URL-адреса с параметрами запроса в HTML-ответе на их эквиваленты, основанные на иерархии.

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

  1. Перейти к диспетчеру IIS
  2. Выберите "Веб-сайт по умолчанию"
  3. В представлении компонентов щелкните "Перезапись URL-адресов"
    Снимок экрана окна
  4. В области "Действия" справа щелкните "Добавить правила...", а затем выберите шаблон "Понятный URL-адрес".
    Снимок экрана: диалоговое окно
  5. В диалоговом окне "Добавление правил для включения понятных URL-адресов" введите пример URL-адреса с параметрами строки запроса: http://localhost/article.aspx?id=123&title=some-title а затем разверните раскрывающийся список с предлагаемыми параметрами для преобразования этого примера URL-адреса в URL-адрес без строки запроса.
    Снимок экрана: диалоговое окно
  6. Выберите второй вариант: http://localhost/article/123/some-title Обратите внимание, что шаблон URL-адреса и URL-адрес подстановки были обновлены соответствующим образом. Они будут использоваться в правиле перезаписи, которое будет создано шаблоном правила. Установите флажок "Создать соответствующее правило перенаправления", чтобы создать правило перенаправления, которое будет использоваться, когда веб-клиенты использовали внутренний URL-адрес для запроса веб-страницы. Эти клиенты будут перенаправлены на соответствующий общедоступный URL-адрес.
    Кроме того, отметьте "Создать соответствующее правило перезаписи для исходящего трафика", чтобы создать правило, заменяющее все внутренние URL-адреса в HTML-коде ответа на их общедоступные эквиваленты.
    Снимок экрана: диалоговое окно
  7. Нажмите "OK", чтобы были созданы правила перезаписи, перенаправления и исходящего трафика.
    Снимок экрана окна Диспетчера IIS, отображающего страницу настройки перезаписи URL. Отображаются входящие и исходящие правила.

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

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

http://localhost/article/234/some-title

Вы должны увидеть, что правило перезаписи на веб-сервере изменило исходный URL-адрес на article.aspx, и оно передало "234" и "some-title" в качестве значений для параметров строки запроса.

В веб-браузере наведите курсор на текст "URL-адрес ссылки" (или используйте меню "Страница" — "Просмотр кода..."). Обратите внимание, что, хотя URL-адрес ссылки изначально был в формате, который использовал параметры строки запроса, он был заменен модулем переопределения URL-адресов для использования формата URL-адреса на основе иерархии.

Скриншот окна браузера, на котором отображается тестовая страница модуля перезаписи URL. Перенаправленный URL обведён.

Кроме того, при запросе http://localhost/article.aspx?id=432&title=some-other-title вы увидите, что браузер перенаправляется в http://localhost/article/432/some-other-title.

Сводка

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