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.
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/URL_rewriting/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
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
Muchos marcos web incluyen la reescritura de URL, ya sea directamente o a través de módulos de extensión.
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.