Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/07/2016, 03:59
Imasnet
 
Fecha de Ingreso: enero-2012
Mensajes: 19
Antigüedad: 12 años, 3 meses
Puntos: 0
Pregunta Rewrite y redirect en web.config (URLs amigables)

Hola a tod@s.
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" >
<match url="^articulos/([_0-9a-z-]+)" />
<action type="Rewrite" url="articulo.asp?pag={R:1}" />
</rule>
Funciona muy bien.

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">
<match url="^articulo.asp$" />
<conditions>
<add input="{QUERY_STRING}" pattern="pag=(\d+)" />
</conditions>
<action type="Redirect" url="/articulos/{R:1}/" redirectType="Permanent" />
</rule>
No nos hace caso. No hace nada. Estamos ya perdidos. Necesitamos ayuda.

Os pongo el web.config completo: (Las urls y el dominio son reales para hacer pruebas).
<?xml version="1.0" encoding="UTF-8"?>
<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>
Gracias.