Introduzione
Apache mod_rewrite è un modulo molto potente e sofisticato che fornisce un modo per eseguire manipolazioni di URL. Usando mod_rewrite è possibile eseguire tutti i tipi di riscrittura degli URL di cui uno potrebbe aver bisogno. Questo articolo ti insegnerà come abilitare il modulo Apache mod_rewrite sul server CentOS.
Fase 1:verifica se il modulo esiste
Prima di abilitare il modulo mod_rewrite, dobbiamo verificare se il modulo è già caricato nel file httpd.
Esegui il seguente comando sul tuo terminale.
# httpd -V
L'output sarà simile al seguente,
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"
Dal risultato sopra, possiamo scoprire il percorso del file di configurazione di apache (httpd.conf). Dal risultato, possiamo dire che il percorso del file conf è /etc/httpd/conf/httpd.conf per il nostro server.
Per verificare se il modulo esiste, esegui il comando indicato di seguito,
# ls /etc/httpd/modules | grep mod_rewrite
Se il modulo esiste, otterrai il seguente risultato.
Risultato:
mod_rewrite.so
Le possibilità di non ottenere questo risultato sono rare, ma se non ottieni questo risultato devi installare mod_rewrite e compilare apache con il supporto del modulo.
Fase 2:verifica se il modulo è caricato
Ora che abbiamo verificato che il modulo esiste nella directory dei moduli, controlliamo se il modulo è caricato o abilitato. Per fare ciò, esegui il seguente comando nel terminale,
# grep -i LoadModule /etc/httpd/conf/httpd.conf | grep rewrite
Se vedi il seguente risultato, significa che il modulo è abilitato.
LoadModule rewrite_module modules/mod_rewrite.so
Se questo risultato è commentato come indicato di seguito, rimuovi il commento dal file httpd.conf, quindi salva ed esci dal file.
#LoadModule rewrite_module modules/mod_rewrite.so
Ma se non ottieni nessuno dei risultati di cui sopra, aggiungi la seguente riga al tuo file httpd.conf.
LoadModule rewrite_module modules/mod_rewrite.so
Fase 3:Configura il file httpd.conf
Ora che abbiamo abilitato il modulo mod_rewrite, accanto a utilizzare .htaccess per eseguire la riscrittura degli URL utilizzando mod_rewrite, è necessario consentire a ciascuna directory di sovrascrivere le opzioni globali di Apache.
Esegui il seguente comando nel tuo terminale,
# grep -i AllowOverride /etc/httpd/conf/httpd.conf
Uscita:
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
Modifica il file httpd.conf individuando la sezione
Ecco fatto, hai abilitato il modulo mod_rewrite sul tuo server CentOS.