Como utilizar o módulo URL Rewrite do IIS 7/Windows 2008 no UOL HOST?

Com a chegada do IIS7, abre-se automaticamente um leque de novas oportunidades. Uma delas é a customização de módulos para atender todo e qualquer tipo de requisição e neste cenário o módulo de URL Rewrite desenvolvido pela própria Microsoft, vem explorar um pouco deste potencial ainda tão pouco conhecido.

Com o URL Rewrite é possivel interceptar qualquer tipo de requisição seja ela ASP, ASP.NET ou HTML, e reescrever a URL antes que ela seja processada pelo IIS. A configuração é feita de forma fácil e intuitiva, atendendo tanto usuários experientes quanto os mais iniciantes.

Para usuários que nunca trabalharam com técnicas de URL Rewrite, é possível realizar toda a configuração via IIS Manager remoto (Feature Delegation que está disponível no plano de hospedagem), utilizando-se de interfaces amigáveis e templates já prontos, possuindo inclusive recursos para o teste imediato de regras.

Para usuários mais experientes é possível criar regras apenas alterando o arquivo web.config de sua aplicação. Usuários que já possuam conhecimento do famoso (e obscuro?) mod_rewrite do Linux, existe um recurso integrado (http://learn.iis.net/page.aspx/470/importing-apache-modrewrite-rules/) que permite a importação deste arquivo para dentro do IIS. A própria interface realiza de maneira automática a conversão da sintaxe para os padrões Microsoft.

Seguem abaixo alguns exemplos de regras que podem ser criadas com o IIS7 URL Rewrite, lembrando que se deve colocar as tags dentro do arquivo web.config:
 

< configuration>
  < configuration>< /configuration>
  < system.webserver>< /system.webserver>
  < rewrite>< /rewrite>
  < rules>< /rules>
  < rule>….< /rule>
< /configuration>

 

Esta regra abaixo, reescreve a url originalmente enviada como:
?seudominio.com/exemplo-10.html? para ?seudominio.com/exemplo.asp?id=10?
 

< rule name=’exemplo 1′>
  < rule name=’exemplo 1′>< /rule>
  < match ignorecase=’true’ url=’^exemplo-([0-9]+).html$’>< /match>
  < action appendquerystring=’false’ type=’Rewrite’ url=’exemplo.asp?id={R:1}’>< /action>
< /rule>

 

Esta regra abaixo, reescreve a url originalmente enviada como:
?seudominio.com/teste? para ?seudominio.com/exemplo.asp?parametro=teste?
 

< rule name=’exemplo 2′>
  < rule name=’exemplo 2′>< /rule>
  < match ignorecase=’true’ url=’^([a-zA-Z0-9_-]+)/?$’>< /match>
  < action appendquerystring=’false’ type=’Rewrite’ url=’exemplo.asp?parametro={R:1}’>< /action>
< /rule>

 

Redirecionamento de domínio para pasta: Esta regra abaixo, redireciona o domínio ?exemplo.com.br? para a pasta ?exemplo? dentro da sua área de site.
 

< rule enabled=’true’ name=’exemplo 3′ stopprocessing=’true’>
 < match ignorecase=’true’ url=’^(.*)$’>
  < conditions logicalgrouping=’MatchAll’>
   < add ignorecase=’true’ input='{HTTP_HOST}’ pattern=’^(www.)?exemplo.com.br’>
    < rule enabled=’true’ name=’exemplo 3′ stopprocessing=’true’>< /rule>
    < match ignorecase=’true’ url=’^(.*)$’>< /match>
    < conditions logicalgrouping=’MatchAll’>< /conditions>
    < add ignorecase=’true’ input='{HTTP_HOST}’ pattern=’^(www.)?exemplo.com.br’>< /add>
    < add input='{R:1}’ negate=’true’ pattern=’^exemplo/’>< /add>
    < action type=’Rewrite’ url=’/exemplo/{R:1}’>< /action>
   < /add>
  < /conditions>
 < /match>
< /rule>

 

Se você possui vários domínios contratados e deseja que todos os domínios sejam redirecionados para um domínio em específico, mantendo na barra de endereços apenas este, realize a configuração abaixo:
Esta configuração redireciona os endereços ‘exemplo.com’ e ‘exemplo.net’ para ‘exemplo.com.br’
 

< rule name=’exemplo 4′ stopprocessing=’true’>
< rule name=’exemplo 4′ stopprocessing=’true’>< /rule>
< match url='(.*)’>< /match>
< action redirecttype=’Permanent’ type=’Redirect’ url=’http://exemplo.com.br/{R:1}’>< /action>
< conditions logicalgrouping=’MatchAny’>< /conditions>
< add input='{HTTP_HOST}’ pattern=’^(www.)?exemplo.com$’>< /add>
< add input='{HTTP_HOST}’ pattern=’^(www.)?exemplo.net$’>< /add>
< /rule>

 

O módulo de rewrite já se encontra instalado em todos os nossos servidores e é uma funcionalidade exclusiva para Windows 2008/IIS7.

Para mais recursos:

http://www.iis.net/extensions/URLRewrite

http://blogs.iis.net/bills/archive/2008/05/31/urlrewrite-module-for-iis7.aspx

Essa resposta te ajudou?
Sim
Não

Agradecemos o seu Feedback!

Siga nossos perfis nas redes sociais para ficar por dentro de dicas para ter um negócio de sucesso, acompanhar eventos e muito mais.