ISAPI REWRITE com ASP classico e Webconfig

Com a atualização dos servidores para IIS8 muitos sites que utilizavam htaccess pararam de funcionar devido o IIS8 não aceitar mais este tipo de configuração.

A solução é utilizar o web.config Como a configuração é nova, muitos programadores estão tendo dificuldade com a novidade. Veja abaixo como configurar.

Vamos transforma da seguinte forma

artigo.asp?id=3&tag=Como-criar-sites

Em

verartigo03/Como-criar-sites

Arquivo web.config completo.

Baixe antes o arquivo web.config original do seu servidor e edite essas configurações nele, pois lá pode ter configurações do seu servidor local.

  
<?xml version=”1.0″ encoding=”UTF-8″?> 
<configuration> 
<system.web> 
<rewrite> 
<rules>
<!– Nome do pagina–>
<rule name=”artigo” stopProcessing=”true”>
<!– Nome inicial da pagina –> 
<match url=”^verartigo/?([a-zA-Z0-9_-]+)?/?([a-zA-Z0-9_-]+)?$” /> 
<conditions> 
<add input=”{REQUEST_FILENAME}” matchType=”IsFile” negate=”true” /> 
<add input=”{REQUEST_FILENAME}” matchType=”IsDirectory” negate=”true” /> 
</conditions>
<!– Endereço da pagina–> 
<action type=”Rewrite” url=”/artigo.asp?id={R:1}&palavrachave={R:2}” /> 
</rule> 
</rewrite> 
</system.webServer> 
</configuration>


Como configurar o web.config

<rule name=”artigo” stopProcessing=”true”>
– Coloco o nome que desejar aqui como identificação

<match url=”^verartigo/?([a-zA-Z0-9_-]+)?/?([a-zA-Z0-9_-]+)?$” />
– Coloque o nome inicial que irá aparecer no novo endereço. Atenção este nome deve ser diferente do arquivo original.
– Cada querystring que colocar na URL deve ter um /?([a-zA-Z0-9_-]+)?. No nosso caso são duas

<action type=”Rewrite” url=“/artigo.asp?id={R:1}&amp;tag={R:2}” />
– Coloque o endereço original.
{R:1} seria a querystring, se tiver duas a próxima deve ser {R:2} e assim por diante.
&amp; serve para separa um querystring da outra, não utilize & no lugar

Como configurar a pagina de origem

– O endereço original seria artigo.asp?<%=id%>&tag=<%=tag%>
– Agora fica verartigo<%=id%>/<%=tag%>

Na tag, não pode ter espaços, acentos e pontuação. Utilize está função abaixo para retirar isso de sua tag

 
Function FormataTitulo(ByVal Texto)
Dim ComAcentos
Dim SemAcentos
Dim Resultado
Dim Cont
'Conjunto de Caracteres com acentos
ComAcentos = "ÁÍÓÚÉÄÏÖÜËÀÌÒÙÈÃÕÂÎÔÛÊáíóúéäïöüëàìòùèãõâîôûêÇç."
'Conjunto de Caracteres sem acentos
SemAcentos = "AIOUEAIOUEAIOUEAOAIOUEaioueaioueaioueaoaioueCc-"
Cont = 0
Resultado = Texto
Do While Cont < Len(ComAcentos)
Cont = Cont + 1
Resultado = Replace(Resultado, Mid(ComAcentos, Cont, 1), Mid(SemAcentos, Cont, 1))
Loop
FormataTitulo = replace(Resultado," ","-")
End Function

Agora fica verartigo<%=id%>/<%=FormataTitulo(tag)%>