Apache modulo mod_rewrite

- Andrés Cruz

In english

El MOD_REWRITE es un módulo provisto por el servidor Apache que permite crear URLs alternativas a las URLs dinámicas generadas por la forma en que están programadas nuestras aplicaciones web; de forma tal que sean más fáciles de recordar, más legibles y también mejor indexadas por los buscadores; y esto es un factor importante a considerar al momento del SEO.

Activar el MOD_REWRITE en Apache

Todo se reduce a 2 sencillos pasos: ejecutar un comando por línea de comandos y modificar las directivas de un archivo de configuración de Apache.

El comando a2enmod sirve para habilitar módulos en Apache; para habilitar el modulo rewrite de Apache ejecutamos:

a2enmod rewrite

Después en la ruta:

/etc/apache2/sites-available/default

Buscamos las lineas que digan:

AllowOverride None

Y las cambiamos todas por:

AllowOverride All

De forma tal que permitimos la reescritura de las URLs; ahora reiniciamos Apache con la siguiente instrucción:

/etc/init.d/apache2 restart

o

service httpd stop service httpd start

Validando el funcionamiento del MOD_REWRITE

Para probar que la activación del módulo rewrite a funcionado; nos creamos un archivo .htaccess en la raíz de nuestro servidor; el archivo .htaccess, esta formado por reglas basadas en expresiones regulares; las cuales Apache procesará. En este ejemplo haremos un redirección utilizando una sencilla regla; copiamos las siguientes líneas en el .htaccess.

RewriteEngine On RewriteRule prueba.html http://www.google.com [R]

Nos creamos un documento HTML de prueba en la raíz de nuestro servidor; no hace falta que tenga ningún contenido, lo llamaremos prueba.html.

Colocamos la siguiente URL <nuestro-host>/prueba.html en nuestro navegador.

En donde <nuestro-host> es el servidor en donde estamos trabajando; si el mismo es nuestra máquina; será localhost.

Si todo va bien Apache nos habrá redirigido a la página principal de Google.

¿Qué es lo que hemos hecho?

Para contestar esta pregunta debemos explicaremos las reglas contenidas en el .htaccess:

  • La primera linea "encendemos" o permitimos la reescritura.
  • La segunda y última línea estamos creando una regla con RewriteRule en donde le indicamos que cuando "encuentre" prueba.html desde la raíz, nos redirige a google.com; por último la bandera [R] Fuerza a redireccionar a una URL externa una URL proveniente de nuestro servidor o interna en nuestro servidor.
Andrés Cruz

Desarrollo con Laravel, Django, Flask, CodeIgniter, HTML5, CSS3, MySQL, JavaScript, Vue, Android, iOS, Flutter

Andrés Cruz en Udemy