Úvod
Apache mod_rewrite je velmi výkonný a sofistikovaný modul, který poskytuje způsob, jak provádět manipulace s URL. Pomocí mod_rewrite lze provádět všechny typy přepisování URL, které člověk může potřebovat. Tento článek vás naučí, jak povolit modul apache mod_rewrite na serveru CentOS.
Krok 1:Zkontrolujte, zda modul existuje
Před povolením modulu mod_rewrite musíme zkontrolovat, zda je modul již načten v souboru httpd.
Spusťte na svém terminálu následující příkaz.
# httpd -V
Výstup bude podobný následujícímu,
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"
Z výše uvedeného výsledku můžeme zjistit cestu ke konfiguračnímu souboru apache (httpd.conf). Z výsledku můžeme říci, že cesta k souboru conf je /etc/httpd/conf/httpd.conf pro náš server.
Chcete-li zkontrolovat, zda modul existuje, spusťte níže uvedený příkaz
# ls /etc/httpd/modules | grep mod_rewrite
Pokud modul existuje, získáte následující výsledek.
Výstup:
mod_rewrite.so
Šance, že tento výsledek nezískáte, jsou vzácné, ale pokud tento výsledek nezískáte, musíte si nainstalovat mod_rewrite a zkompilovat apache s podporou modulu.
Krok 2:Zkontrolujte, zda je modul načten
Nyní, když jsme ověřili, že modul existuje v adresáři modules, zkontrolujme, zda je modul načten nebo povolen. Chcete-li to provést, spusťte v terminálu následující příkaz
# grep -i LoadModule /etc/httpd/conf/httpd.conf | grep rewrite
Pokud uvidíte následující výsledek, znamená to, že modul je povolen.
LoadModule rewrite_module modules/mod_rewrite.so
Pokud je tento výsledek okomentován, jak je uvedeno níže, odeberte komentář ze souboru httpd.conf, poté soubor uložte a ukončete.
#LoadModule rewrite_module modules/mod_rewrite.so
Pokud však nezískáte žádný z výše uvedených výsledků, přidejte do souboru httpd.conf následující řádek.
LoadModule rewrite_module modules/mod_rewrite.so
Krok 3:Konfigurace souboru httpd.conf
Nyní, když jsme povolili modul mod_rewrite, musíte vedle použití .htaccess k přepisování adres URL pomocí mod_rewrite povolit každému adresáři, aby přepsal globální možnosti Apache.
Spusťte ve svém terminálu následující příkaz
# grep -i AllowOverride /etc/httpd/conf/httpd.conf
Výstup:
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
Upravte soubor httpd.conf umístěním sekce
To je vše, povolili jste modul mod_rewrite na vašem serveru CentOS.