Queremos aplicar urls amigables a un proyecto en ASP clásico.
Primeramente queremos que una url amigable del tipo
www.emaginarte.es/articulos/2
cargue una real
www.emaginarte.es/articulo.asp?pag=2
por tanto hemos preparado un web.config con lo siguiente:
<rule name="Rewrite paginado articulos" >Funciona muy bien.
<match url="^articulos/([_0-9a-z-]+)" />
<action type="Rewrite" url="articulo.asp?pag={R:1}" />
</rule>
Seguidamente, el problema lo tenemos cuando queremos que las entradas url que se generan con vínculos internos, pongan en el navegador su url amigable, por ejemplo, cuando hay un vínculo a :
www.emaginarte.es/articulo.asp?pag=2
ponga:
www.emaginarte.es/articulos/2
Hemos incluido en el web.config:
<rule name="Redireccion paginado articulos">No nos hace caso. No hace nada. Estamos ya perdidos. Necesitamos ayuda.
<match url="^articulo.asp$" />
<conditions>
<add input="{QUERY_STRING}" pattern="pag=(\d+)" />
</conditions>
<action type="Redirect" url="/articulos/{R:1}/" redirectType="Permanent" />
</rule>
Os pongo el web.config completo: (Las urls y el dominio son reales para hacer pruebas).
<?xml version="1.0" encoding="UTF-8"?>Gracias.
<configuration>
<system.webServer>
<httpErrors errorMode="Detailed" />
<rewrite>
<rules>
<rule name="Rewrite paginado articulos" >
<match url="^articulos/([_0-9a-z-]+)" />
<action type="Rewrite" url="articulo.asp?pag={R:1}" />
</rule>
<rule name="Redireccion paginado articulos">
<match url="^articulo.asp$" />
<conditions>
<add input="{QUERY_STRING}" pattern="pag=(\d+)" />
</conditions>
<action type="Redirect" url="/articulos/{R:1}/" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>