En las aplicaciones web , un motor de reescritura es un componente de software que reescribe las URL (Localizadores Uniformes de Recursos), 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 framework de aplicación web . Las URL reescritas (a veces conocidas como URL cortas , amigables para los motores de búsqueda - URL SEF o slugs ) se utilizan para proporcionar enlaces más cortos y relevantes a las páginas web. Esta técnica añade 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 usar URL que generan páginas desde el servidor mediante parámetros de cadena de consulta . Estas URL suelen reescribirse para que se asemejen a las URL de las páginas estáticas en 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_enginepero se puede reescribir como:
http://example.com/wiki/Rewrite_engineUn 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=19Se puede modificar de esta manera:
http://www.example.com/Blog/2006/12/19/lo 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 web puede pasar términos especializados de la URL a su motor de búsqueda como término de búsqueda. Esto permitiría a los usuarios buscar directamente desde su navegador. Por ejemplo, la URL tal como se introduce en la barra de direcciones del navegador :
http://example.com/search termEl navegador lo codificará en formato URL antes de realizar la solicitud HTTP . El servidor podría reescribirlo a:
http://example.com/search.php?q=search%20termVentajas e inconvenientes
Existen varias ventajas al utilizar la reescritura de URL: [ 1 ]
- Los enlaces son más "limpios" y descriptivos, lo que mejora su "facilidad de uso" tanto para los usuarios como para los motores de búsqueda .
- Evitan los enlaces en línea no deseados , que pueden desperdiciar ancho de banda .
- El sitio puede seguir utilizando las mismas URL aunque se cambie la tecnología subyacente utilizada para servirlas (por ejemplo, al cambiar a un nuevo motor de blogs ).
Sin embargo, también puede haber inconvenientes; si un usuario desea modificar una URL para recuperar nuevos datos, la reescritura de URL puede dificultar la creació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.example.com/Blog/06/04/02/En este caso, la cadena de consulta original fue más útil, ya que las variables de consulta indicaban el mes y el día:
http://www.example.com/Blog/Posts.php?Year=06&Month=04&Day=02marcos de trabajo web
Muchos frameworks 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 ]
- La función de reescritura de URL está disponible como una extensión para Microsoft IIS . [ 3 ]
- Ruby on Rails tiene reescritura de URL integrada a través de rutas. [ 4 ]
- Jakarta Servlet cuenta con reescritura de URL extensible mediante OCPsoft URLRewriteFilter y Tuckey UrlRewriteFilter.
- Jakarta Faces ha simplificado la reescritura de URL mediante PrettyFaces: URLRewriteFilter.
- Django utiliza un sistema basado en expresiones regulares . Esto no es estrictamente reescritura de URL, ya que no hay ningún script al que "reescribir", ni siquiera una estructura de directorios; pero proporciona toda la flexibilidad de la reescritura de URL. [ 5 ]
- Java Stripes Framework ha tenido funcionalidad integrada desde la versión 1.5. [ 6 ]
- Muchos frameworks de Perl, como Mojolicious y Catalyst , tienen esta característica. [ 7 ]
- CodeIgniter ofrece la opción de 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 con múltiples enlaces a partir de una URI como /f101,n61,o56,d/ifconfig , donde varias partes individuales como f101 se expanden con la ayuda de expresiones regulares en variables para indicar FreeBSD 10.1-RELEASE y demás.
- 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 para la reescritura y redireccionamiento de URL.
Desde la perspectiva del 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
- ↑ Muchas de estas 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.
- ↑ documentación de mod_rewrite
- ↑ Extensión de reescritura de URL para Microsoft IIS
- ↑ "Rails Routing from the Outside In" . "Ruby on Rails" . Consultado el 25 de abril de 2014 .
- ↑ URLconf de Django
- ↑ URLs limpias en Stripes 1.5
- ↑ Guías - Guía Mojolicious de la galaxia . Mojolicious. Consultado el 8 de septiembre de 2013.
- ↑ Documentación ModRewrite - Lighttpd - lighty labs . Redmine.lighttpd.net. Consultado el 8 de septiembre de 2013.
- ↑ "ngx_http_rewrite_module - rewrite" . nginx.org . Consultado el 25 de diciembre de 2014 .
- ↑ Murenin, Constantine A. (18 de febrero de 2013). "¿Un sitio web dinámico escrito completamente en nginx.conf? ¡Presentamos mdoc.su!" . nginx@nginx.org (Lista de correo) . Recuperado el 24 de diciembre de 2014 .
- ↑ "URL TOOLKIT forma parte del manual del servidor web Hiawatha" . Archivado del original el 22 de marzo de 2016. Consultado el 25 de enero de 2012 .
- ↑ "URL limpia" . DocForge. Archivado del original el 20 de octubre de 2009. Consultado el 25 de abril de 2014 .
Enlaces externos
- Apache mod_rewrite
- URL