Dirección URL descriptiva: plantilla de reglas
del equipo de IIS
Las plantillas de reglas se usan para proporcionar una manera sencilla de crear una o varias reglas de reescritura para un escenario determinado. El módulo de reescritura de direcciones URL incluye varias plantillas de reglas para algunos escenarios de uso comunes. Además de la interfaz de usuario del módulo de reescritura de direcciones URL, proporciona un marco para conectar plantillas de reglas personalizadas. En este tutorial se le guiará por el uso de la plantilla de reglas "Dirección URL descriptiva" que se incluye con el módulo de reescritura de direcciones URL.
Requisitos previos
Para poder seguir este tutorial, es necesario reunir los siguientes requisitos previos:
- IIS 7.0 o posterior con el servicio de rol ASP.NET habilitado;
- Módulo de reescritura de direcciones URL versión 2.0 instalado.
Configuración de una página web de prueba
Usaremos una página de prueba sencilla asp.net para comprobar que las reglas creadas por la plantilla funcionan correctamente. La página de prueba simplemente lee las variables de servidor web y genera sus valores en el explorador.
Copie el siguiente código de ASP.NET y colóquelo en la carpeta %SystemDrive%\inetpub\wwwroot\
en un archivo denominado article.aspx:
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>URL Rewrite Module Test</title>
</head>
<body>
<h1>URL Rewrite Module Test Page</h1>
<table>
<tr>
<th>Server Variable</th>
<th>Value</th>
</tr>
<tr>
<td>Original URL: </td>
<td><%= Request.ServerVariables["HTTP_X_ORIGINAL_URL"] %></td>
</tr>
<tr>
<td>Final URL: </td>
<td><%= Request.ServerVariables["SCRIPT_NAME"] %>?<%= Request.ServerVariables["QUERY_STRING"] %></td>
</tr>
<tr>
<td>Public Link: </td>
<td><a href="<%= Request.ServerVariables["SCRIPT_NAME"] %>?<%= Request.ServerVariables["QUERY_STRING"] %>">Link URL</a></td>
</tr>
</table>
</body>
</html>
Después de copiar este archivo, vaya a http://localhost/article.aspx
y compruebe que la página se ha representado correctamente en un explorador.
Uso de la plantilla de regla para generar una regla de reescritura
La plantilla de reglas "Dirección URL descriptiva" se puede usar para generar reglas de reescritura, redirección y salida que hacen que las direcciones URL de la aplicación web dinámica sean más descriptivas para los usuarios y los motores de búsqueda. Normalmente, las páginas web dinámicas tienen en cuenta los parámetros de cadena de consulta al generar un HTML de salida. Las direcciones URL con cadenas de consulta (por ejemplo, http://contoso.com/articles.aspx?year=2008&month=11
) no son tan descriptivas y comunicativas para las personas como las direcciones URL sencillas basadas en jerarquías (por ejemplo, http://contolso.com/articles/2008/11
). Además, algunos rastreadores del motor de búsqueda pueden omitir la cadena de consulta al indexar las páginas del sitio web. La plantilla de reglas le ayuda a generar una regla de reescritura que transforma las direcciones URL basadas en jerarquía en direcciones URL con cadenas de consulta. Además, opcionalmente, puede generar una regla de redirección para redirigir a los clientes web de direcciones URL con cadenas de consulta a direcciones URL limpias. Por último, es posible crear una regla de reescritura de salida que reemplace todas las apariciones de direcciones URL por cadenas de consulta en la respuesta HTML con sus equivalentes de dirección URL basadas en jerarquías.
Para usar la plantilla, siga estos pasos:
- Vaya al administrador de IIS.
- Seleccione "Sitio web predeterminado".
- En la vista de características, haga clic en "Reescritura de URL"
- En el panel "Acciones" de la derecha, haga clic en "Agregar reglas..." y seleccione la plantilla "User Friendly URL":
- En el cuadro de diálogo "Agregar reglas para habilitar las direcciones URL descriptivas", escriba un ejemplo de dirección URL con parámetros de cadena de consulta:
http://localhost/article.aspx?id=123&title=some-title
y expanda la lista desplegable con las opciones sugeridas de cómo transformar esa dirección URL de ejemplo en una dirección URL sin cadena de consulta.
- Elija la segunda opción:
http://localhost/article/123/some-title
. Tenga en cuenta que el patrón de dirección URL y la dirección URL de sustitución se han actualizado en consecuencia. Se usarán en la regla de reescritura que creará la plantilla de regla. Marque la opción "Crear la regla de redirección correspondiente" para crear una regla de redirección que se usará cuando los clientes web usen la dirección URL interna para solicitar una página web. Se les redirigirá a la dirección URL pública correspondiente.
Además, marque "Crear la regla de reescritura de salida correspondiente" para crear una regla de salida que reemplace todas las instancias de direcciones URL internas en el HTML de respuesta por sus equivalentes públicos.
- Haga clic en "Aceptar" para que se generen las reglas de reescritura, redirección y salida:
Probar la regla
Para probar las reglas generadas, abra un explorador web y solicite la siguiente dirección URL:
http://localhost/article/234/some-title
Debería ver que la regla de reescritura en el servidor web ha cambiado la dirección URL original a article.aspx y ha pasado "234" y "some-title" como valores para los parámetros de cadena de consulta.
En el navegador web, mueva el mouse sobre el texto "Dirección URL del vínculo" (o use el menú "Página" -> "Ver código fuente..."). Tenga en cuenta que, aunque la dirección URL del vínculo se encontraba originalmente en un formato que usaba parámetros de cadena de consulta, se ha reemplazado por el módulo de reescritura de direcciones URL para usar el formato de dirección URL basado en jerarquías.
Además, si solicita http://localhost/article.aspx?id=432&title=some-other-title
, verá que el explorador se redirige a http://localhost/article/432/some-other-title
.
Resumen
En este tutorial ha aprendido a generar reglas de reescritura mediante la plantilla de reglas "Dirección URL descriptiva" incluida en el módulo de reescritura de direcciones URL. Esta plantilla de regla se puede usar como punto de partida para diseñar reglas de reescritura para habilitar direcciones URL descriptivas para el usuario y los motores de búsqueda para las aplicaciones web existentes.