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.
Desarrollo con Laravel, Django, Flask, CodeIgniter, HTML5, CSS3, MySQL, JavaScript, Vue, Android, iOS, Flutter