URL amigables en IIS 7 y ASP clásico

Windows Server

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.