P2.9 Ficheros .htaccess
Los ficheros .htaccess son archivos de configuración específicos de directorios que permiten a los administradores web definir reglas y directivas para controlar el comportamiento del servidor Apache sin necesidad de modificar la configuración global del servidor. Estos archivos son útiles para aplicar configuraciones específicas a un directorio o subdirectorio.
Habilitar el uso de archivos .htaccess
Debemos asegurarnos de que la directiva AllowOverride esté configurada correctamente en el archivo de configuración del host virtual para permitir el uso de archivos .htaccess. Por ejemplo:
sudo nano /etc/apache2/sites-available/sitio1.conf
AllowOverride en All dentro del bloque <Directory> correspondiente al directorio raíz del sitio web:
<Directory /www/sitio1/>
AllowOverride All
</Directory>
Luego, guarda el archivo y reinicia Apache para que los cambios surtan efecto:
sudo systemctl restart apache2
.htaccess para el directorio /www/sitio1/carpeta1.
- Crear el directorio y archivos de prueba:
sudo mkdir -p /www/sitio1/carpeta1 cd /www/sitio1/carpeta1 sudo touch 1 2 3 - Crear el archivo
.htaccess:sudo nano /www/sitio1/carpeta1/.htaccess - Agregar reglas al archivo
.htaccess. Por ejemplo, para redirigir todas las solicitudes ahttps://www.ejemplo.com, agrega la siguiente línea:Redirect / https://www.ejemplo.com - Guardar y salir del editor.
- Verificación. Ahora, si intentamos acceder a
http://sitio1.local/carpeta1, deberíamos ser redirigidos ahttps://www.ejemplo.com.
Denegar acceso a ciertos archivos
Otro ejemplo es restringir el acceso a ciertos archivos. Para denegar el acceso a todos los archivos con la extensión .txt y .jpg, agrega la siguiente línea al archivo .htaccess:
<FilesMatch "\.(txt|jpg)$">
Require all denied
</FilesMatch>
carpeta1, deberíamos recibir un error de acceso denegado (403 Forbidden).
Control de autenticación básica
También podemos utilizar archivos .htaccess para implementar autenticación básica como hicimos en practicas anteriores.
- Añadir las siguientes líneas al archivo
.htaccess:AuthType Basic AuthName "Área Protegida" AuthUserFile /etc/apache2/.htpasswd Require valid-user - Guardar y salir del editor.
- Verificación. Ahora, si intentamos acceder a cualquier recurso dentro de
carpeta1, se nos solicitará un nombre de usuario y una contraseña. Solo los usuarios definidos en el archivo.htpasswdpodrán acceder al recurso.
Notas adicionales
- Los archivos
.htaccesspueden afectar el rendimiento del servidor, ya que Apache debe leer estos archivos en cada solicitud. Por lo tanto, es recomendable utilizarlos con moderación y solo cuando sea necesario. - Tener configuraciones dispersas en múltiples archivos
.htaccesspuede complicar la gestión del servidor, por lo que es aconsejable documentar cualquier cambio realizado en estos archivos.