¿Qué es un motor de reescritura y para qué sirve?
Los contenidos de un sitio web rara vez son estáticos; normalmente se generan de forma dinámica a partir de una solicitud individual. De forma análoga, no es deseable que la dirección correspondiente tenga un formato incomprensible para las personas: suele constar del dominio, una subpágina y un código adicional que a menudo comienza con un signo de interrogación. Una de las principales tareas de un motor de reescritura es, por tanto, transmitir internamente al servidor web información legible y, hacia el exterior, mantener una dirección de fácil lectura, por ejemplo en el formato domain.tld/unterseite/inhalt/thema.html. Además, un motor de reescritura puede encargarse también de transformaciones o redirecciones más complejas.
Índice
Todos los servidores web populares cuentan con un motor de reescritura
Funcionamiento de un motor de reescritura en detalle
Uso práctico de mod_rewrite en Apache 2 y NGINX
Apache 2 y el archivo .htaccess
Configuración global del motor de reescritura en NGINX
Diversas posibilidades de uso de un motor de reescritura
Conclusión: el motor de reescritura facilita el SEO, aporta flexibilidad y seguridad adicional
Todos los servidores web populares cuentan con un motor de reescritura
Hasta mediados de la década de 2000, Apache 2 fue con diferencia el servidor web más extendido. Además de su disponibilidad gratuita gracias a su licencia de código abierto, su eficiencia y rendimiento, la flexibilidad que ofrecía su motor de reescritura fue una de las razones de su gran popularidad. Gracias a estas ventajas, el servidor llegó a alcanzar una cuota de mercado de más del 80 %; la única competencia destacable era el IIS que Microsoft utiliza en Windows Server.
A partir de alrededor de 2005 surgieron cada vez más alternativas al servidor Apache 2, que no obstante adoptaron y adaptaron la funcionalidad de su motor de reescritura. Entre ellas se encuentran, por ejemplo, NGINX o el muy ligero y de bajo consumo de recursos Lighttpd. Sin duda, es gracias al ejemplo de Apache 2 que la idea del motor de reescritura pudo imponerse a nivel mundial. Hoy en día esta extensión forma parte del núcleo de todos los servidores web utilizados en Internet y, desde la perspectiva de la experiencia de usuario y de la optimización para motores de búsqueda (SEO), se ha convertido en una herramienta indispensable para webmasters y administradores.
Funcionamiento de un motor de reescritura en detalle
Para garantizar una alta flexibilidad y, al mismo tiempo, mantener el programa núcleo lo más claro posible, los servidores web emplean hoy en día, casi sin excepción, una arquitectura modular. Determinadas funciones pueden cargarse por separado según las necesidades —de forma similar a un complemento— e integrarse en la configuración básica. Según este concepto, el motor de reescritura suele ser un módulo externo, que en Apache 2 y Microsoft IIS recibe el nombre Mod Rewrite (mod_rewrite). Para utilizarlo, el administrador debe habilitar Mod Rewrite en la configuración principal: se cargará automáticamente en cada inicio o reinicio y estará disponible como función nativa.
La forma de funcionar del motor de reescritura es a primera vista simple y comprensible. El propietario de un sitio web define determinadas rutas o ubicaciones de un dominio en las que Mod Rewrite se activa. Cuando el servidor recibe una petición para una de esas direcciones, la remite al motor, que reescribe los elementos predefinidos según un patrón establecido y los reenvía. Se pueden usar distintos parámetros: el motor de reescritura es capaz de diferenciar las peticiones por dirección o por metadatos como el navegador, la dirección IP, la ubicación del cliente o la fuente del enlace. A continuación puede seleccionar la petición según los criterios deseados y redirigirla a distintas direcciones de destino.
El caso de uso más habitual de un motor de reescritura es, sin duda, convertir direcciones a un formato amigable para SEO y usuarios en otro que requiere el lenguaje de scripting interpretado, como PHP, Perl o Python. Para ello, Mod Rewrite transforma partes de la URL utilizada u otros datos disponibles en variables y las pasa al servidor web según el patrón indicado. De este modo crea una capa de abstracción interna entre los formatos externos e internos y garantiza la compatibilidad entre ambos.
Uso práctico de Mod Rewrite en Apache 2 y NGINX
Aunque todos los servidores web incorporan un motor de reescritura en su diseño, los programas difieren en su aplicación práctica. Esto se debe, entre otras cosas, a la distinta estructura del software. Apache 2 apuesta de forma consistente por un principio modular, mientras que NGINX compila los módulos en el propio núcleo. De ese modo no pueden instalarse y cargarse posteriormente como en Apache 2, sino que deben contemplarse ya en la creación del paquete. De esta circunstancia resulta, en parte, una configuración diferente del Mod Rewrite, lo que provoca que las configuraciones entre ambos servidores web no sean compatibles entre sí.
Apache 2 y el archivo .htaccess
Casi todo usuario de Apache 2 se enfrentará antes o después al uso de archivos .htaccess en distintos niveles de la estructura de carpetas. Con ellos, el servidor web ofrece un sistema muy claro y extraordinariamente flexible para utilizar el motor de reescritura. El principio es muy simple y se basa en un archivo llamado .htaccess, que puede crearse en una o varias carpetas y que contiene las instrucciones para mod_rewrite. El proceso sigue una jerarquía estricta y lógicamente ordenada:
- Al solicitar una dirección de dominio, Apache 2 comprueba la existencia de un .htaccess en el directorio raíz (root).
- Si existe un archivo correspondiente, mod_rewrite ejecuta la instrucción.
- Si no existe ningún archivo, Apache 2 comprueba jerárquicamente todas las rutas siguientes.
- El servidor web remite cada archivo .htaccess a mod_rewrite hasta alcanzar el destino.
- El motor de reescritura procesa las redirecciones de una en una y las trata según su orden.
- Los subdirectorios pueden anular instrucciones de niveles superiores —incluida la protección mediante contraseña— mediante instrucciones explícitas.
El último punto es, por ejemplo, importante para la seguridad informática —otra tarea que con frecuencia asume .htaccess. Permite tanto escalonar los niveles de acceso como una diferenciación independiente entre distintas áreas de un sitio web.
Configuración global del motor de reescritura en NGINX
A diferencia de Apache 2, NGINX no permite almacenar reglas localmente dentro de un directorio, sino que las define de forma global en su configuración. Esta circunstancia dificulta su uso en algunos proveedores de hosting que no permiten acceso de usuario a un servidor propio. Sin embargo, normalmente existe la posibilidad de emplear el motor de reescritura mediante ajustes locales. La característica decisiva es, en cualquier caso, que todas las instrucciones se definen de forma centralizada y no mediante archivos individuales dentro de los directorios correspondientes.
Diferentes usos del motor de reescritura
El motor de reescritura suele ser una de las funciones más importantes para el ajuste fino de un servidor web. Sus posibilidades de uso son prácticamente ilimitadas e incluyen, entre otros, los siguientes escenarios:
- Reescritura de URLs relevantes para SEO con palabras clave adecuadas
- Creación de una estructura clara y fácil de recordar para los directorios
- Diferenciación de distintos niveles
- Asegurar determinadas áreas mediante contraseña, origen de la solicitud o rangos de IP
- Geobloqueo de determinadas regiones
- Configuración de redirecciones temporales o permanentes a otro sitio web
Conclusión: el motor de reescritura facilita el SEO, aporta flexibilidad y seguridad adicional
Para un servidor web, el motor de reescritura es sin duda una de las herramientas más importantes y realiza numerosas y diversas tareas. Su enfoque universal simplifica muchos objetivos que, de otro modo, solo podrían alcanzarse mediante rodeos o una configuración extensa. Por esta razón, en los últimos años se ha convertido en una de las herramientas clave para una gestión eficiente y para soluciones tanto temporales como permanentes. El abanico de tareas abarca desde la seguridad informática y la inclusión de términos relevantes para el SEO hasta las redirecciones permanentes en un cambio de dominio. Por tanto, las posibilidades y capacidades del motor de reescritura nunca deben subestimarse.
Foto: Pexels pixabay.com
Escribe un comentario
Más proveedores de hosting
Más artículos interesantes
Configurar y asegurar un VPS
¿Cómo configuro mejor mi VPS? Esta pregunta aparece cada vez con más frecuencia en foros y blogs en Internet.
¿Qué significa CGI-bin y para qué lo necesito?
Os mostramos qué significa CGI-bin y para qué lo necesitáis en vuestro sitio web.