Introducción
Apache mod_rewrite es un módulo muy poderoso y sofisticado que proporciona una forma de realizar manipulaciones de URL. Usando mod_rewrite uno puede realizar todo tipo de reescritura de URL que uno pueda necesitar. Este artículo le enseñará cómo habilitar el módulo apache mod_rewrite en el servidor CentOS.
Paso 1:Comprobar si el módulo existe
Antes de habilitar el módulo mod_rewrite, debemos verificar si el módulo ya está cargado en el archivo httpd.
Ejecute el siguiente comando en su terminal.
# httpd -V
El resultado será similar al siguiente,
Server version: Apache/2.2.15 (Unix) Server built: Jan 12 2017 17:09:39 Server's Module Magic Number: 20051115:25 Server loaded: APR 1.3.9, APR-Util 1.3.9 Compiled using: APR 1.3.9, APR-Util 1.3.9 Architecture: 64-bit Server MPM: Prefork threaded: no forked: yes (variable process count) Server compiled with.... -D APACHE_MPM_DIR="server/mpm/prefork" -D APR_HAS_SENDFILE -D APR_HAS_MMAP -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled) -D APR_USE_SYSVSEM_SERIALIZE -D APR_USE_PTHREAD_SERIALIZE -D APR_HAS_OTHER_CHILD -D AP_HAVE_RELIABLE_PIPED_LOGS -D DYNAMIC_MODULE_LIMIT=128 -D HTTPD_ROOT="/etc/httpd" -D SUEXEC_BIN="/usr/sbin/suexec" -D DEFAULT_PIDLOG="run/httpd.pid" -D DEFAULT_SCOREBOARD="logs/apache_runtime_status" -D DEFAULT_LOCKFILE="logs/accept.lock" -D DEFAULT_ERRORLOG="logs/error_log" -D AP_TYPES_CONFIG_FILE="conf/mime.types" -D SERVER_CONFIG_FILE="conf/httpd.conf"
A partir del resultado anterior, podemos averiguar la ruta del archivo de configuración de Apache (httpd.conf). Del resultado, podemos decir que la ruta del archivo conf es /etc/httpd/conf/httpd.conf para nuestro servidor.
Para verificar si el módulo existe, ejecute el comando mencionado a continuación,
# ls /etc/httpd/modules | grep mod_rewrite
Si el módulo existe, obtendrá el siguiente resultado.
Salida:
mod_rewrite.so
Las posibilidades de no obtener este resultado son raras, pero si no obtiene este resultado, debe instalar mod_rewrite y compilar apache con el soporte del módulo.
Paso 2:Comprobar si el módulo está cargado
Ahora que hemos verificado que el módulo existe en el directorio de módulos, verifiquemos si el módulo está cargado o habilitado. Para hacer esto, ejecute el siguiente comando en la terminal,
# grep -i LoadModule /etc/httpd/conf/httpd.conf | grep rewrite
Si ve el siguiente resultado, significa que el módulo está habilitado.
LoadModule rewrite_module modules/mod_rewrite.so
Si este resultado se comenta como se menciona a continuación, elimine el comentario del archivo httpd.conf, luego guarde y salga del archivo.
#LoadModule rewrite_module modules/mod_rewrite.so
Pero si no obtiene ninguno de los resultados anteriores, agregue la siguiente línea a su archivo httpd.conf.
LoadModule rewrite_module modules/mod_rewrite.so
Paso 3:Configure el archivo httpd.conf
Ahora que hemos habilitado el módulo mod_rewrite, además de usar .htaccess para reescribir URL usando mod_rewrite, debe permitir que cada directorio anule las opciones globales de Apache.
Ejecute el siguiente comando en su terminal,
# grep -i AllowOverride /etc/httpd/conf/httpd.conf
Salida:
AllowOverride None # AllowOverride controls what directives may be placed in .htaccess files. AllowOverride None # AllowOverride FileInfo AuthConfig Limit # for additional configuration directives. See also the AllowOverride AllowOverride None AllowOverride None AllowOverride None
Edite el archivo httpd.conf localizando la sección
Eso es todo, ha habilitado el módulo mod_rewrite en su servidor CentOS.