Einführung
Der Apache mod_rewrite ist ein sehr leistungsfähiges und ausgeklügeltes Modul, das eine Möglichkeit bietet, URL-Manipulationen durchzuführen. Mit mod_rewrite kann man alle Arten von URL-Umschreibungen durchführen, die man braucht. In diesem Artikel erfahren Sie, wie Sie das Apache-Modul mod_rewrite auf dem CentOS-Server aktivieren.
Schritt 1:Prüfen Sie, ob das Modul existiert
Bevor wir das Modul mod_rewrite aktivieren, müssen wir prüfen, ob das Modul bereits in der httpd-Datei geladen ist.
Führen Sie den folgenden Befehl auf Ihrem Terminal aus.
# httpd -V
Die Ausgabe sieht etwa so aus:
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"
Aus dem obigen Ergebnis können wir den Pfad der Apache-Konfigurationsdatei (httpd.conf) ermitteln. Aus dem Ergebnis können wir sagen, dass der Pfad der conf-Datei für unseren Server /etc/httpd/conf/httpd.conf lautet.
Um zu überprüfen, ob das Modul existiert, führen Sie den unten genannten Befehl aus,
# ls /etc/httpd/modules | grep mod_rewrite
Wenn das Modul existiert, erhalten Sie das folgende Ergebnis.
Ausgabe:
mod_rewrite.so
Die Chancen, dieses Ergebnis nicht zu erhalten, sind selten, aber wenn Sie dieses Ergebnis nicht erhalten, müssen Sie mod_rewrite installieren und Apache mit der Modulunterstützung kompilieren.
Schritt 2:Prüfen Sie, ob das Modul geladen ist
Nachdem wir überprüft haben, dass das Modul im Modulverzeichnis vorhanden ist, prüfen wir, ob das Modul geladen oder aktiviert ist. Führen Sie dazu den folgenden Befehl im Terminal aus,
# grep -i LoadModule /etc/httpd/conf/httpd.conf | grep rewrite
Wenn Sie das folgende Ergebnis sehen, bedeutet dies, dass das Modul aktiviert ist.
LoadModule rewrite_module modules/mod_rewrite.so
Wenn dieses Ergebnis wie unten beschrieben kommentiert wird, entfernen Sie den Kommentar aus der Datei httpd.conf, speichern und beenden Sie die Datei.
#LoadModule rewrite_module modules/mod_rewrite.so
Wenn Sie jedoch keines der oben genannten Ergebnisse erhalten, fügen Sie Ihrer httpd.conf-Datei die folgende Zeile hinzu.
LoadModule rewrite_module modules/mod_rewrite.so
Schritt 3:httpd.conf-Datei konfigurieren
Nachdem wir nun das mod_rewrite-Modul aktiviert haben, müssen Sie neben der Verwendung von .htaccess zum URL-Umschreiben mit mod_rewrite zulassen, dass jedes Verzeichnis die globalen Optionen von Apache außer Kraft setzt.
Führen Sie den folgenden Befehl in Ihrem Terminal aus,
# grep -i AllowOverride /etc/httpd/conf/httpd.conf
Ausgabe:
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
Bearbeiten Sie die Datei httpd.conf, indem Sie den Abschnitt
Sie haben das Modul mod_rewrite auf Ihrem CentOS-Server aktiviert.