URLs Amigables con Ubuntu 20.04 y Apache 2
Una URL amigable o URL semántica es una URL fácil de entender, tanto para los buscadores, como para el usuario del sitio web y que muestra el asunto de la página con sólo leer su dirección.
Si no existieran las URLs amigables es muy probable que la navegacion de unos sitios fuera:
www.tusitio.com/urls?p=1234
(la cual , no nos dice nada)
Si eres programador y trabajas con WordPress, es probable que en Ubuntu te hayas dado cuenta que despues de instalar Apache2 y WordPress las URLs Amigables no funcionan. Esto no es un error. Más bien es la configuración por defecto de Ubuntu.
Para poder utilizar URLs Amigables, vamos a configurar un Virtual Host. Para lograr esto, como primer paso deberemos habilitar el modulo rewrite de Apache con el siguiente comando:
sudo a2enmod rewrite
Reiniciamos nuestro servidor web Apache para que tome los cambios mediante el comando:
sudo service apache2 restart
Podemos chequear si está funcionando el modulo rewrite que acabamos de habilitar haciendo:
apache2ctl -M
Si aparece rewrite en la lista, podemos seguir adelante. Para continuar utilizaremos un editor de texto (por ej: gedit, nano, mcedit, etc) para modificar el archivo de configuración de Apache apropiado para nuestro sitio en la carpeta /etc/apache2/sites-avaiable/. Para un solo sitio, el archivo que debemos editar es /etc/apache2/sites-avaiable/default. En el caso de tener varios sitios, el nombre del archivo a editar debe reflejar el nombre del sitio a configurar. En conclusión, para editar la configuración por defecto debemos usar:
sudo gedit /etc/apache2/sites-available/default
Una vez dentro del editor, buscamos la sección Directory referida a la carpeta del sitio que queremos configurar. Normalmente para en /etc/apache2/sites-avaiable/default es <Directory /var/www> es justamente aquí donde cambiamos:
AllowOverride None por AllowOverride All
Esta directiva nos permite, mediante un archivo .htaccess, reemplazar la configuración por defecto de Apache, y es necesario habilitarla para que funcione la reescritura de URLs.
Una vez más reiniciamos Apache mediante:
sudo service apache2 restart
Y listo, tan simple como eso, ya tenemos nuestro servidor web Apache configurado para aceptar URLs Amigables.