Blog de Gonzalo

Blog de programación de Gonzalo López

COMPROBAR QUE UN MÓDULO ESTÁ CARGADO EN APACHE

APACHE

Hace poco hablé sobre los módulos de apache y en este post quiero explicar como comprobar que un módulo está cargado en apache.
Con ifmodule se consigue:

  • Evitar errores: Si el módulo no está cargado, Apache ignora el bloque sin generar un error, lo que es especialmente útil en entornos compartidos donde no controlas qué módulos están habilitados.
  • Portabilidad: Permite que el mismo archivo de configuración funcione en diferentes servidores con configuraciones distintas.
  • Condicionalidad: Ejecuta configuraciones solo si el módulo está disponible, lo que facilita la compatibilidad.

Para realizar esta comprobación hay que usar IfModule y si el módulo está habilitado se ejecutará el código específico de ese módulo.
Ejemplo:


<IfModule rewrite_module>
    RewriteEngine On
    RewriteRule ^articulo/([0-9]+)/?$ index.php?id=$1 [L]
</IfModule>

En el ejemplo anterior se intenta habilitar la reescritura de URLs con "mod_rewrite" en un archivo ".htaccess:".
  • Si mod_rewrite está cargado, Apache activará el motor de reescritura y aplicará la regla para redirigir URLs como articulo/123 a index.php?id=123.
  • Si mod_rewrite no está habilitado, el bloque se ignora, y Apache no arrojará un error.
Se puede usar con negación (!), si el módulo np está cargado hacer algo:


<IfModule !rewrite_module>
 # Configuraciones alternativas si mod_rewrite no está disponible
    ErrorDocument 404 /error.html
</IfModule>

En el ejemplo anterior se muestra una página de error.

Compartir en twitter