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:
- IIS 7.0 ou superior com serviço de função do ASP.NET habilitado;
- 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.
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:
Vá para o Gerenciador do IIS
Selecione "Site Padrão"
No Modo de Exibição de Recurso, clique em "Reescrita de URL".
No painel "Ações", no lado direito, clique em "Adicionar Regras...".
Na caixa de diálogo "Adicionar regras", selecione "Regra com Mapa de Reescrita" e clique em "OK":
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.
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.
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.
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&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>
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:
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.