Creo que esto va aquí, si no, me lo movéis.
Estoy creando url amigables en una Web con ASP clásico. Este es un ejemplo de las url a cambiar:
Antigua:
dominio.com/noticia.asp?id=155&title=titulo-de-la-noticia
Y debe quedar así:
dominio.com/blog/155/titulo-de-la-noticia
Para ello creo esto en web.config:
Código XML:
Ver original
<rule name="Rewrite to article.aspx" stopProcessing="true"> <match url="^blog/([0-9]+)/" /> <action type="Rewrite" url="noticiaampliada.asp?cod={R:1}" appendQueryString="false"/> </rule> <rule name="Redireccion paginado articulos"> <match url="^noticiaampliada.asp$" /> <conditions> <add input="{QUERY_STRING}" pattern="cod=(\d+)" /> </conditions> <action type="Redirect" url="/blog/{c:1}/" redirectType="Permanent" appendQueryString="false"/> </rule>
la primera regla es la que convierte y la segunda es la inversa, redirección 301
Funciona, pero al entrar me fastidia el resto de enlaces
yo creía que esto era transparente, pero no.
es decir si dentro del html hay enlaces como éste:
Código HTML:
Ver original
action="noticia.asp?altcom=si&cod=155" href="data/fotosno/g155.jpg"
al pinchar, me crea al siguiente enlace:
dominio.com/blog/155/noticia.asp?altcom=si&cod=155
dominio.com/blog/155/data/fotosno/g155.jpg
Con el consiguiente error
Para solucionarlo si pongo los enlaces empezando con "/" se soluciona pero imaginaos el follón, no es sólo en el html, sino también en llamadas ajax o en registros de la base de datos.
¿Qué tengo que escribir en el Web.config para solucionar esto?