URL amigables en IIS 7 y ASP clásico
Windows Server
- Por Programador ASP clásico /
- 11/10/2015 @ 13:46:38 /
- 1289 visitas
El Internet Information Information Services (IIS) permite crear urls amigables para mejorar el posicionamiento SEO. Para ello debe instalar y activar el módulo de rewrites del IIS. Una vez funcionando, configuramos todo el enrutado a través del web.config.
Debemos crear reglas usando expresiones regulares para redigir las urls que necesitemos. Vamos a usar dos tipos:
- Rewrites: El servidor entiende que las nuevas urls equivalen a las viejas rutas.
- Redirects: Definimos redirecciones, que redirigen al usuario desde las antiguas rutas a las nuevas amigables.
Primero debemos definir que estamos en el modulo rewrite y que vamos a crear unas reglas. Luego definimos la regla, la marcamos con un nombre único:
<rewrite> <rules> <rule name="Rewrite paginado"> <match url="^productos/([0-9]+)/" /> <action type="Rewrite" url="producto.asp?pag={R:1}" /> </rule></rules></rewrite>
Explicación: dentro de la regla, definimos un "match", que es la ruta amigable creada, en ella tenemos un primer nivel con productos, y un segundo con el paginado. Al ser un paginado numérico, añadimos una expresión regular que sólo admita números. Después está marcada la acción a realizar, en este caso, un rewrite. Con él marcamos que la url equivalente que se reescribe, es la antigua de /articulo.asp?pag=3.
Ahora que hemos conseguido que el IIS entienda las nuevas urls, vamos a redirigir las antiguas a las nuevas amigables. Para ello creamos una nueva regla, en este caso sera un redirect, que redirigirá la antigua url a la nueva. Incluimos esta nueva regla dentro de la estructura anterior de rules.
<rule name="Redireccion paginado productos"> <match url="^productos$" /> <conditions> <add input="{QUERY_STRING}" pattern="pag=(\d+)" /> </conditions> <action type="Redirect" url="/productos/{R:1}/" redirectType="Permanent" /></rule>
En este caso, añadimos un nuevo elemento, las condiciones. Éstas nos permitirán filtrar cierto tipo de eventos. En este caso, al ser un querystring, añadimos como dato de entrada la página, y luego marcamos en la redirección como queremos mostrarla con {R:1}
Otro ejemplo ahora con varios parámetros y condiciones:
<rule name="Redireccion de articulo con categoria"> <match url="^articulos.aspx$" /> <conditions> <add input="{QUERY_STRING}" pattern="cat=(\d+)" /> <add input="##{R:1}##_{QUERY_STRING}" pattern="##([^#]+)##_.*art=(\d+)" /> </conditions> <action type="Redirect" url="/articulos/{R:1}/{R:2}" redirectType="Permanent" appendQueryString="false" /></rule>
En el ejemplo vemos dos variables por query strings, que se redirigen a una ruta perfectamente formada con dos niveles amigables.
Una redirección común para el posicionamiento es la siguiente (añade www al inicio de la URL):
<rule name="without-www-to-with-www"> <match url="^(.*)$" /> <conditions logicalGrouping="MatchAll"> </add input="{HTTP_HOST}" pattern="^dominio.com" /> </conditions> <action type="Redirect" url="http://www.dominio.com/{R:1}" /></rule>
Es todo...
tags:
En esta sección encontrarás una mezcla de códigos recopilados de fuentes públicas de Internet y otros creados por ASP TEAM. Compartimos recursos útiles de buena fe para formar una base de conocimiento en el desarrollo de aplicaciones en ASP Clásico.