Motor de reescritura

Componente de servidor web para mapear URL

En las aplicaciones web , un motor de reescritura es un componente de software que realiza la reescritura de las URL (Uniform Resource Locator), modificando su apariencia. Esta modificación se denomina reescritura de URL . Es una forma de implementar el mapeo o enrutamiento de URL dentro de una aplicación web . El motor suele ser un componente de un servidor web o un marco de aplicación web . Las URL reescritas (a veces conocidas como URL cortas , bonitas o elegantes, URL SEF amigables para motores de búsqueda o slugs ) se utilizan para proporcionar enlaces más cortos y de aspecto más relevante a páginas web. La técnica agrega una capa de abstracción entre los archivos utilizados para generar una página web y la URL que se presenta al mundo exterior.

Uso

Los sitios web con contenido dinámico pueden utilizar URL que generan páginas desde el servidor mediante parámetros de cadena de consulta . Estas suelen reescribirse para que se asemejen a las URL de las páginas estáticas de un sitio con una jerarquía de subdirectorios . Por ejemplo, la URL de una página wiki con el título Rewrite_engine podría ser:

http://example.com/w/index.php?title=Rewrite_engine

pero puede reescribirse como:

http://example.com/wiki/Rewrite_engine

Un blog podría tener una URL que codifique las fechas de cada entrada:

http://www.example.com/Blog/Posts.php?Year=2006&Month=12&Day=19

Se puede modificar así:

http://www.example.com/Blog/2006/12/19/

que también permite al usuario cambiar la URL para ver todas las publicaciones disponibles en diciembre, simplemente eliminando el texto que codifica el día '19', como si estuviera navegando "hacia arriba" en un directorio:

http://www.example.com/Blog/2006/12/

Un sitio puede pasar términos especializados de la URL a su motor de búsqueda como un término de búsqueda. Esto permitiría a los usuarios buscar directamente desde su navegador. Por ejemplo, la URL ingresada en la barra de ubicación del navegador :

http://example.com/término de búsqueda

El navegador codificará la URL antes de realizar la solicitud HTTP . El servidor podría reescribir esto de la siguiente manera:

http://example.com/search.php?q=search%20term

Beneficios y desventajas

El uso de la reescritura de URL tiene varias ventajas: [1]

Sin embargo, también puede haber inconvenientes: si un usuario desea modificar una URL para recuperar datos nuevos, la reescritura de la URL puede dificultar la construcción de consultas personalizadas debido a la falta de variables con nombre. Por ejemplo, puede resultar difícil determinar la fecha a partir del siguiente formato:

http://www.ejemplo.com/Blog/06/04/02/

En este caso, la cadena de consulta original fue más útil, ya que las variables de consulta indicaban mes y día:

http://www.example.com/Blog/Posts.php?Year=06&Month=04&Day=02

Marcos web

Muchos marcos web incluyen la reescritura de URL, ya sea directamente o a través de módulos de extensión.

  • El servidor HTTP Apache tiene reescritura de URL proporcionada por el módulo mod_rewrite. [2]
  • URL Rewrite está disponible como una extensión para Microsoft IIS . [3]
  • Ruby on Rails tiene reescritura de URL incorporada a través de rutas. [4]
  • Jakarta Servlet tiene reescritura de URL extensible a través de OCPsoft URLRewriteFilter y Tuckey UrlRewriteFilter.
  • Jakarta Faces ha simplificado la reescritura de URL a través de PrettyFaces: URLRewriteFilter.
  • Django utiliza un sistema basado en expresiones regulares . No se trata estrictamente de reescritura de URL, ya que no hay ningún script que "reescribir", ni siquiera una estructura de directorio; pero proporciona la flexibilidad total de la reescritura de URL. [5]
  • Java Stripes Framework tiene una funcionalidad integrada desde la versión 1.5. [6]
  • Muchos frameworks de Perl, como Mojolicious y Catalyst , tienen esta característica. [7]
  • CodeIgniter proporciona reescritura de URL.
  • lighttpd tiene un módulo mod_rewrite. [8]
  • nginx tiene un módulo de reescritura. [9] [10] Por ejemplo, es posible generar una página multivariable y de múltiples enlaces desde una URI como .mw-parser-output .monospaced{font-family:monospace,monospace}/f101,n61,o56,d/ifconfig, donde múltiples partes individuales como f101 se expanden con la ayuda de expresiones regulares en variables para significar FreeBSD 10.1-RELEASE y así sucesivamente.
  • El servidor HTTP Hiawatha tiene un kit de herramientas de URL que admite la reescritura de URL. [11]
  • El servidor HTTP Cherokee admite expresiones regulares de reescritura de URL y redirecciones.

Desde una perspectiva de desarrollo de software , la reescritura de URL puede ayudar en la modularización del código y el flujo de control , [12] lo que la convierte en una característica útil de los marcos web modernos.

Véase también

Notas

  1. ^ Muchos de estos solo se aplican a servidores HTTP cuyo comportamiento predeterminado es asignar URL a entidades del sistema de archivos (es decir, archivos y directorios); ciertos entornos, como muchas plataformas de servidores de aplicaciones HTTP , hacen que esto sea irrelevante.
  2. ^ Documentación de mod_rewrite
  3. ^ Extensión de reescritura de URL para Microsoft IIS
  4. ^ "Enrutamiento de Rails desde el exterior hacia el interior". "Ruby on Rails" . Consultado el 25 de abril de 2014 .
  5. ^ URLconf de Django
  6. ^ URL limpias en Stripes 1.5
  7. ^ Guías - Guía de Mojolicious para la galaxia. Mojolicious. Consultado el 8 de septiembre de 2013.
  8. ^ Docs ModRewrite - Lighttpd - lighty labs. Redmine.lighttpd.net. Consultado el 8 de septiembre de 2013.
  9. ^ "ngx_http_rewrite_module - reescritura". nginx.org . Consultado el 25 de diciembre de 2014 .
  10. ^ Murenin, Constantine A. (18 de febrero de 2013). "¿Un sitio web dinámico escrito completamente en nginx.conf? ¡Presentamos mdoc.su!". [email protected] (Lista de correo) . Consultado el 24 de diciembre de 2014 .
  11. ^ URL TOOLKIT parte del manual del servidor web Hiawatha
  12. ^ "URL limpia". DocForge . Consultado el 25 de abril de 2014 .
  • Mod_rewrite de Apache
Obtenido de "https://es.wikipedia.org/w/index.php?title=Motor_de_reescritura&oldid=1235172318"