Artículos Guías Manuales Sistemas Linux Windows Redes MySql Binario 0 Binario Cero
Artículos Guías Manuales Sistemas Linux Windows Redes MySql Binario 0 Binario Cero

Cómo configurar Apache para que lea archivos .htaccess

Loading

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 apache2

Otros 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.conf

Agrega o modifica el bloque para tu ruta:


    ServerName miapp.midominio.com
    DocumentRoot /var/www/miapp

    
        AllowOverride All
        Require all granted
    

    ErrorLog ${APACHE_LOG_DIR}/miapp_error.log
    CustomLog ${APACHE_LOG_DIR}/miapp_access.log combined

Explicación:

  • AllowOverride All → permite que Apache lea todos los archivos .htaccess dentro de ese directorio y subdirectorios.
  • Require all granted → permite el acceso desde el navegador.
  • ErrorLog y CustomLog → ayudan a depurar errores.

Reiniciar Apache

Después de cualquier cambio de configuración:

sudo systemctl reload apache2

O, si prefieres reiniciar completamente:

sudo systemctl restart apache2

Verificar que .htaccess funciona

Crea un .htaccess temporal de prueba:

nano /var/www/miapp/.htaccess

Contenido mínimo:

# Prueba de .htaccess
Deny from all

Intenta acceder a la aplicación desde el navegador:

http://tu-servidor/miapp/
  • Si recibes 403 Forbidden.htaccess está 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 All en todo el servidor; aplícalo solo a directorios que necesiten .htaccess.
  • Para entornos de producción, deshabilita listados de directorios con:
Options -Indexes

Buenas prácticas

  • Verifica que Apache cargue los módulos necesarios (rewrite, setenvif).
  • No exponer .htaccess directamente al navegador.
  • Revisa logs en caso de que reglas dentro del .htaccess fallen:
tail -f /var/log/apache2/error.log

Conclusió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.

You may also like...