¿Cómo usar Urls amigables en asp net webforms?

url-amigable

¿Por qué usar URLS amigables?

Últimamente viene siendo habitual que todos los nuevos portales incorporen este tipo de rutas. En este artículo vamos a intentar tratar las urls amigables en asp.net web forms.

Estas rutas son más óptimas para el usuario, ya que permiten una navegación sencilla a través de ella y si nos interesa posicionar en google, son indispensables a día de hoy.

Como hacer funcionar las URLS amigables en ASP.NET

Para que cualquiera de los siguientes métodos funcione es necesario que la aplicación web se esté trabajando con el FrameWork 4.0.

Otra consideración importante es que los siguientes ejemplos se estarán trabajando bajo el Microsoft Visual Studio 2013 en el lenguaje vb.net.

Usando IIS y Web.Config

Para que este método funcione necesitamos configurar nuestra aplicación para que corra en nuestro IIS local. Ya en otro artículo hablaremos de como instalar y configurar una aplicación web asp.net para que trabaje con el ISS local.

Considerando que ya tenemos instalado el ISS local o en el servidor web en donde publicaremos el sitio lo siguiente es instalar la reescritura de dirección URL, la cual no viene instalada por defectos en el ISS.

urls-amigables-en-asp-net-web-form-1

Para ello siempre en la pantalla principal del ISS nos dirigimos al grupo Administración en la opción Instalador de plataformas Web.

urls-amigables-en-asp-net-web-form-2

Buscamos el URL Rewrite y procedemos a instalarlo

urls-amigables-en-asp-net-web-form-2.1

urls-amigables-en-asp-net-web-form-3

Una vez instalado aparecerá el icono de reescritura de dirección URL en el grupo ISS

urls-amigables-en-asp-net-web-form-4

A continuación entramos al sitio especifico (esto en caso de tener más de un sitio en el ISS) y entramos a la opción de reescritura de dirección URL y presionamos en la opción superior derecha Agregar Reglas.

urls-amigables-en-asp-net-web-form-5

Nos aparecerá una ventana en donde seleccionaremos la opción de “Regla en blanco” o “Dirección URL descriptiva”. Esta nos ayudara a escribir la regla en donde especificaremos la ruta física de nuestro archivo y la ruta virtual amigable que utilizara así como las variables que podrían utilizarse.

Las reglas en blanco son definidas por nuestro código mientras que en una regla de dirección URL descriptiva el ISS nos ayuda un poco pues nos da una especie de “asistente” que nos crea la ruta de forma automática dando a elegir diferentes opciones.

urls-amigables-en-asp-net-web-form-6

Las reglas de entrada básicamente tienen tres componentes

  • Coincidencia de la cadena/Patrón: Hacer coincidir la cadena de dirección url. Se pueden utilizar expresiones regulares o wildard (que es comodín que se utiliza en el módulo de Redirección HTTP del IIS). En ejemplo utilizamos expresiones regulares
  • Condiciones: Si se machea el patrón entonces se verifican las condiciones (pero pueden no tener condiciones) por ejemplo verificar si existe o no el archivo físico o directorio o alguna variable de servidor o encabezado HTTP
  • Acción a tomar: Lo que se debe realizar si la cadena machea con el patrón de entrada y cumple las condiciones (podremos reescribir la url, definir una redirección – Response 3xx, abortar le petición o una respuesta personalizada)

urls-amigables-en-asp-net-web-form-7

Importante/A tener en cuenta

  • Todas las reglas que agregamos se alojan en el web.config de la app que estamos manipulando
  • Las url originales quedan guardadas en una variable de servidor (HTTP_X_ORIGINAL_URL y UNENCODED_URL)
  • Las reglas se evalúan como se ingresan por esa razón se debe tener cuidado en las definición de las mismas (mirar en el web.config el orden se puede manipular allí o desde la interfaz de administración podremos ordenar de otra manera)
  • El arhivo global.asax debe existir independientemente que no se utilice.

Usando Routing

El Routing existe desde el Framework de .NET 3.5 desde el SP1 y que con el Framework 4.0 hacen que su uso sea sencillo y eficaz. Estas rutas nacen con el MVC que las traen de serie.

Usando el Framework 4.0 simplemente debemos definir las rutas que queramos en el archivo global.asax de la siguiente manera:

Primeramente se debe importar la clase System.Web.Routing

Imports System.Web.Routing

Podemos crear ahora un proceso que convierta todas las rutas, de esta manera tendremos todo centralizado.

    Sub RegisterCustomRoutes(routes As RouteCollection)
        routes.MapPageRoute(
             "registrarse",
             "id/{id}",
             "~/publico/registrarse.aspx"
         )
 
        '    'Alias=> Un nombre cualquiera para denominar la ruta que usaremos para posteriormente llamarla.
        '    'Estructura=> Una estructura para la ruta con todos los niveles necesarios.
        '    'Ruta física=> Ruta física del archivo
    End Sub

Lo siguiente, es colocar el proceso antes creado en el evento global Application_Start

    Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs)
        ' Se desencadena al iniciar la aplicación
        RegisterCustomRoutes(RouteTable.Routes)
    End Sub

Y eso es todo, esto es suficiente para que las rutas amigables funcinen correctamente.

Importante/A tener en cuenta

La reescritura de dirección URL debe estar instalada en el ISS.

Cualquier duda no olviden comentar, si pueden compartir eso ayudaria muchisimo.

Suscribir
Notificar a
guest
0 Comentarios
Comentarios en línea
Ver todos los comentarios