La documentación de abajo es para configurar apache para poder utilizar el enrutador que esta implementado en la carpeta /lib/Route.php
Para crear un enrutador básico en Apache2 utilizando mod_rewrite, que te permitirá redirigir todas las peticiones hacia un único archivo (como index.php), sigue estos pasos:
- Habilitar el módulo mod_rewrite: Apache necesita tener activado el módulo mod_rewrite para poder realizar la reescritura de URLs.
Ejecuta los siguientes comandos para habilitarlo:
sudo a2enmod rewrite
-
Configurar el archivo .htaccess:
-
Configurar el archivo .htaccess: Apache necesita que las directivas de reescritura estén definidas en un archivo .htaccess. Si aún no tienes uno, créalo en el directorio /var/www/html.
nano /var/www/html/.htaccess
En ese archivo, añade las siguientes reglas para redirigir todas las peticiones a un solo archivo (generalmente index.php):
# Activar RewriteEngine
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [QSA,L]
Lo que hacen estas reglas:
- RewriteEngine On: Activa el motor de reescritura.
- RewriteCond %{REQUEST_FILENAME} !-f: Si el archivo solicitado no existe...
- RewriteCond %{REQUEST_FILENAME} !-d: ... y no es un directorio.
- RewriteRule ^(.*)$ index.php [QSA,L]: Redirige la solicitud a index.php, pasando cualquier parámetro de la URL.
- Permitir el uso de .htaccess en la configuración de Apache: Asegúrate de que el archivo de configuración de Apache permita el uso de .htaccess. Edita el archivo de configuración de Apache correspondiente a tu sitio web (por ejemplo, /etc/apache2/sites-available/000-default.conf o uno personalizado).
Busca o añade el siguiente bloque :
<Directory /var/www/html/>
AllowOverride All
</Directory>
Luego, reinicia Apache para que los cambios surtan efecto:
sudo systemctl restart apache2