diciembre 3, 2019
3min de lectura
Deyimar A.
mod_rewrite de Apache es una forma efectiva y fácil de manipular URLs. La manipulación de una URL se realiza desde el lado del servidor. Explicado de forma básica, con mod_rewrite, las URLs limpias y fáciles de usar se convierten en sitios web. Como su nombre lo indica, este módulo realiza una reescritura de las URLs. Puede ser una excelente opción para limpiar las URLs de tu sitio web. En este tutorial, te explicamos qué es mod_rewrite, por qué es útil y cómo configurarlo en un VPS que ejecute Apache.
Cada vez que un usuario ingresa una URL, se compara con una lista de reglas predefinidas. Las reglas están presentes para buscar patrones o palabras clave particulares. Si esa palabra clave está presente en la URL y la regla coincide, se reemplaza con una cadena predefinida: una nueva URL.
La mayor ventaja que ofrece mod_rewrite es su capacidad para convertir las URLs comunes en URLs limpias, haciéndolas fácil de entender por el usuario final, que podría no ser un experto en tecnología.
A su vez, estas URL también son muy fáciles de usar y de buscar. ¡Los motores de búsqueda reconocen estas URL más rápido! ¿Qué es una URL limpia? Echemos un vistazo a este ejemplo:
De las tres URL anteriores, está claro que la tercera es mucho más legible y comprensible para el usuario final que la primera y la segunda. La URL 3 es una URL limpia.
Recuerda, antes de comenzar, ¡necesitas acceder a tu VPS usando SSH! Consulta nuestro tutorial PuTTY si tienes inconvenientes con esto. Ahora comencemos el proceso:
Usaremos Ubuntu 18.04 para este ejemplo. Esta versión de Ubuntu tiene un instalador de paquetes incorporado: apt-get. Primero, actualízalo ejecutando el comando:
sudo apt-get update
Ahora puedes proceder con la instalación de apache2.
El comando para la instalación es:
sudo apt-get install apache2
El siguiente paso es activar mod_rewrite.
El comando para hacerlo es:
sudo a2enmod rewrite
El comando anterior habilitará el modo de reescribir o te informará si ya está en uso. Después de esto, reinicia Apache:
sudo service apache2 restart
Las reglas de reescritura de URL deben estar predefinidas. Aquí, .htaccess empieza a aparecer. Un usuario puede escribir todas las reglas en el archivo .htaccess. Este es usado por el servidor. No debería haber ningún error en este archivo, de lo contrario, devolverá un error del servidor. Podemos modificar nuestras reglas de reescritura en cualquier momento.
El archivo .htacess debe crearse en la raíz para probar la funcionalidad de reescritura.
Primero ejecuta el siguiente comando:
sudo nano /var/www/html/.htaccess
Esto creará el archivo .htaccess si aún no está en la raíz, o lo abrirá si ya existe. Por ahora puedes guardar y salir. En nano, puedes hacerlo presionando CTRL+O para guardar y CTRL+X para salir.
Continuando con los preparativos para usar mod_rewrite, debes abrir el archivo 000-default.conf ubicado en el /etc/apache2/sites-enabled/. Esto puedes hacerlo con el comando:
sudo nano /etc/apache2/sites-enabled/000-default.conf
Dentro de este archivo, coloca el siguiente bloque de código después de la cadena de caracteres <VirtualHost *:80>:
<Directory /var/www/html> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow, deny allow from all </Directory>
Guarda el archivo como lo hiciste con .htaccess. Para que los cambios anteriores tengan efecto, reinicia Apache como se mencionó en el paso dos.
Como mencionábamos antes, mod_rewrite lo que hace, básicamente, es seleccionar la URL limpia y convertirla en rutas reales que conducen al código. Para esto debes tener:
Ahora, pasemos a escribir una regla de reescritura que redirigirá a un usuario a la página quienes_somos.html, si la URL solicitada es http://ip/quienessomos
Para ejecutar con éxito la regla de reescritura, el motor de reescritura debe estar encendido. Ingresa el siguiente comando al comienzo del archivo .htaccess.
RewriteEngine on
Y la siguiente línea puede ser tu regla:
ReWriteRule ^quienessomos$ quienes_somos.html [NC]
La sintaxis puede ser un poco confusa, vamos a desglosarla:
Las dos líneas combinadas se verían así en el archivo .htaccess:
ReWriteEngine on ReWriteRule ^quienessomos$ quienes_somos.html [NC]
¡Y listo!, ¡eso es todo! ¡Creaste con éxito una regla mod_rewrite!
Las URL sencillas, limpias y simples de usar juegan un papel vital para cualquier sitio web exitoso. Tener palabras clave es muy importante, no solo para que las URLs se puedan memorizar con facilidad, sino también para el SEO. Hay cientos de reglas que puedes crear y escribir. ¡Y ahora ya sabes cómo! ¡Esperamos que utilices mod_rewrite en tus proyectos!
Deja una respuesta