Apache2. Activación de la reescritura de urls y reglas con mod rewrite

En la actualidad todos las páginas webs precisas de la re-escritura de urls y reglas. Esto es algo muy habitual en los CMS actuales como wordpress, o drupal, de echo se torna completamente necesario e imprescindible.

Para poder usar la re-escritura en un servidor Apache tenemos que activar el módulo correspondiente llamada rewrite. Este módulo se encuentra como disponible en el directorio /etc/apache2/mods-enabled/ llamada rewrite.load.

Para activarlos, ejecutaremos en un terminal el siguiente comando:

/* Desde Debian */
# su
# a2enmod rewrite

/* Desde Ubuntu */
# sudo a2enmod rewrite

 

En el sites o virtuals que tengamos activos activar de la forma por ejemplo:

$ sudo nano /etc/apache2/sites-enabled/000-default.conf

<VirtualHost *:80>

………
………

<Directory /var/www/html>

Options Indexes FollowSymLinks
AllowOverride All
Require all granted

</Directory>

……….
……….
</VirtualHost>

 

por último reiniciamos el apache con sudo en Ubuntu o como root en Debian como hemos visto antes :

# sudo systemctl restart apache2

Para comprobar que el apache reescribe podemos hacer una prueba creando una regla en la que se llama
al archivo index.html se reescriba la url para que muestre el contenido del archivo texto.html aunque en la
url no nos muestre ese desvío.

Para ello generamos el archivo (si no existe ya) .htaccess en el raíz de donde esté alojada tu página web y dando por echo que el usuario Apache que maneja la web es www-data, que en cada caso / instalación puede no ser este (que es el por defecto) y ser otro, en cuyo caso hay que cambiar el usuario www-data con el comando chown por el usuario que corresponda.

# sudo nano /var/www/html/.htaccess

 

RewriteEngine On
RewriteRule ^index.html$ texto.html [L]

 

# sudo chmod 644 /var/www/html/.htaccess

# sudo chown www-data:www-data /var/www/html/.htaccess

 

Luego creamos el fichero texto.html con el contenido que queramos para probar y otro fichero index.html con algo
distinto para ver si Apache nos reescribe la url y nos muestra el contenido de texto.html aunque le hayamos pedido index.html.

 

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *