Artículos Guías Manuales Sistemas Linux Windows Redes MySql Binario 0 Binario Cero
![]()
Los archivos .htaccess son ficheros de configuración a nivel de directorio que permiten definir reglas de seguridad, redirecciones, reescrituras de URL y otras configuraciones específicas sin modificar los archivos principales del servidor.
Sin embargo, Apache no los procesa por defecto, por motivos de rendimiento y seguridad. Para que .htaccess sea leído, se debe configurar explícitamente el servidor. Este artículo explica cómo habilitar .htaccess correctamente para cualquier aplicación web.
Pre-requisitos
- Apache 2.4 o superior
- Acceso root o privilegios sudo
- Una aplicación web instalada (por ejemplo:
/var/www/miapp) - PHP-FPM (opcional, si la aplicación usa PHP)
Habilitar módulos necesarios en Apache
Para que .htaccess funcione, Apache necesita mod_rewrite y otras capacidades de reescritura o redirección.
sudo a2enmod rewrite
sudo systemctl restart apache2Otros módulos útiles pueden ser setenvif o headers.
Configurar el VirtualHost
Edita el archivo de configuración de tu sitio. Por ejemplo:
sudo nano /etc/apache2/sites-available/miapp.confAgrega o modifica el bloque <Directory> para tu ruta:
<VirtualHost *:80>
ServerName miapp.midominio.com
DocumentRoot /var/www/miapp
<Directory /var/www/miapp>
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/miapp_error.log
CustomLog ${APACHE_LOG_DIR}/miapp_access.log combined
</VirtualHost>
Explicación:
AllowOverride All→ permite que Apache lea todos los archivos.htaccessdentro de ese directorio y subdirectorios.Require all granted→ permite el acceso desde el navegador.ErrorLogyCustomLog→ ayudan a depurar errores.
Reiniciar Apache
Después de cualquier cambio de configuración:
sudo systemctl reload apache2O, si prefieres reiniciar completamente:
sudo systemctl restart apache2Verificar que .htaccess funciona
Crea un .htaccess temporal de prueba:
nano /var/www/miapp/.htaccessContenido mínimo:
# Prueba de .htaccess
Deny from allIntenta acceder a la aplicación desde el navegador:
http://tu-servidor/miapp/
- Si recibes 403 Forbidden →
.htaccessestá activo - Si se carga normalmente → Apache todavía no lo está leyendo
Elimina el .htaccess de prueba después de la verificación.
Consideraciones de seguridad
- Asegúrate de que los directorios sensibles de la aplicación estén protegidos.
- Evita usar
AllowOverride Allen todo el servidor; aplícalo solo a directorios que necesiten.htaccess. - Para entornos de producción, deshabilita listados de directorios con:
Options -IndexesBuenas prácticas
- Verifica que Apache cargue los módulos necesarios (
rewrite,setenvif). - No exponer
.htaccessdirectamente al navegador. - Revisa logs en caso de que reglas dentro del
.htaccessfallen:
tail -f /var/log/apache2/error.logConclusión
Habilitar .htaccess correctamente permite a Apache:
- Leer reglas de seguridad y redirecciones de la aplicación.
- Asegurar directorios sensibles y datos confidenciales.
- Mantener compatibilidad con aplicaciones que dependen de estas configuraciones.
La clave es: AllowOverride All + mod_rewrite activo + directorio correctamente apuntado.



