Compartilhar via


Regra com Reescrita de Mapa - modelo de regra

por Ruslan Yakushev

Os modelos de regra são usados para fornecer uma maneira simples de criar uma ou mais regras de reescrita para um determinado cenário. O módulo de reescrita de URL inclui vários modelos de regra para alguns cenários de uso comuns. Além disso, a interface do usuário do Módulo de Reescrita de URL fornece uma estrutura para conectar modelos de regra personalizados. Este passo a passo vai guiar você sobre como usar o modelo de "Regra com Mapa de Reescrita" que está incluído no módulo de reescrita de URL.

Pré-requisitos

Esse passo a passo requer os seguintes pré-requisitos:

  1. IIS 7.0 ou superior com serviço de função do ASP.NET habilitado;
  2. Módulo de reescrita de URL da versão Go Live instalada.

Configurando uma página da Web de teste

Nós usaremos uma página asp.net de teste simples para verificar se a regra criada pelo modelo funciona corretamente. Esta página de teste apenas lê as variáveis do servidor Web e gera seus valores no navegador.

Copie o seguinte código ASP.NET e coloque-o na pasta %SystemDrive%\inetpub\wwwroot\ em um arquivo chamado 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>

Depois de copiar esse arquivo, navegue até http://localhost/article.aspx e verifique se a página foi renderizada corretamente em um navegador.

Screenshot of the U R L Rewrite Module Test Page webpage.

Usando o modelo de regra para gerar a regra de reescrita

O modelo "Regra com Mapa de Reescrita" pode ser usado para gerar regras de reescrita e redirecionamento que usam mapas de reescrita para armazenar mapeamentos estáticos entre URLs solicitadas originalmente e URLs reescritas ou redirecionadas. Para saber como usar mapas de reescrita, confira “Referência de configuração do módulo de reescrita de URL” e “Como usar mapas de reescrita no módulo de reescrita de URL”.

Para usar esse modelo, siga estas etapas:

  1. Vá para o Gerenciador do IIS

  2. Selecione "Site Padrão"

  3. No Modo de Exibição de Recurso, clique em "Reescrita de URL".
    Screenshot of the Default Web Site Home screen with the U R L Rewrite option being highlighted.

  4. No painel "Ações", no lado direito, clique em "Adicionar Regras...".
    Screenshot of the U R L Rewrite screen with a focus on the Add Rules option.

  5. Na caixa de diálogo "Adicionar regras", selecione "Regra com Mapa de Reescrita" e clique em "OK":
    Screenshot of the Add rules dialog with the Rule with rewrite map option being highlighted.

  6. Na caixa de diálogo "Adicionar regra com mapa de reescrita", escolha "Reescrever" na lista suspensa. Na caixa de combinação "Escolher o mapa de reescrita:", especifique o nome do novo mapa de reescrita como StaticRewrites.
    Screenshot of the Add rule with rewrite map dialog.

  7. Clique em "OK". Isso criará um mapa de reescrita com o nome fornecido e uma regra de reescrita com o nome "Rewrite Rule 1 for StaticRewrites" que faz referência a esse mapa de reescrita.

  8. Depois de clicar em "OK", você será levado para a página onde pode especificar as entradas de mapeamento para o mapa de reescrita. Clique em "Adicionar entrada de mapeamento..." no painel Ações no lado direito e, em seguida, insira o valor original e o novo valor para a entrada de mapeamento como "/article1" e "/article.aspx?id=1&title=some-title", respectivamente.
    Screenshot of the Add Mapping Entry dialog showing the Original value and New value fields.

  9. Repita a etapa anterior para adicionar mais duas entradas de mapeamento da seguinte maneira:

    Valor original: Novo valor:
    /some-title /article.aspx?id=1&title=some-title
    /post/some-title.html /article.aspx?id=1&title=some-title

Depois de concluir essas etapas, você verá o seguinte mapa de reescrita e a regra de regravação criada no arquivo 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>

Testando a regra

Para testar a regra de reescrita gerada que usa o mapa "StaticRewrites", abra o navegador da Web e solicite qualquer uma das seguintes URLs:

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

Qualquer uma das URLs acima deve fazer com que a URL seja reescrita de acordo com os mapeamentos definidos no mapa de reescrita. Os resultados deverão ser semelhantes à seguinte página:

Screenshot of the U R L Rewrite Module Test Page showing the Original U R L and Final U R L fields.

Resumo

Neste passo a passo, você aprendeu a gerar regras de reescrita com mapas de reescrita usando o modelo "Regra com Mapa de Reescrita" incluído no módulo de reescrita de URL. Esse modelo de regra pode ser usado para criar uma regra e um mapa de espaço reservado que pode conter um grande número de mapeamentos estáticos de reescrita e redirecionamento para seu aplicativo Web.