Shell

mod_rewrite (Apache2-Server)

Dieser Artikel widmet sich dem Thema mod_rewrite, zu dem vielleicht bei dem ein oder anderen hin und wieder die selben Fragen auftauchen.

Was ist „mod rewrite“ oder mod_rewrite?

Erstens: mod_rewrite ist eine Einstellung des Apache-Servers. D.h. mod_rewrite ist entweder an (enabled) oder aus (disabled).

Zweitens: Wenn mod_rewrite an ist, so können URLs umgeleitet werden. D.h. die folgende URL …

 

… wird durch die Einstellungen von mod_rewrite umgeformt zu:

Wie stelle ich fest, ob mod_rewrite aktiv ist?

Ganz einfach: Erstelle eine leere php-Datei mit dem Inhalt:

Rufe diese auf dem Browser auf und suche mit der Suchfunktion des Browsers nach „mod_rewrite“. Wenn du einen Eintrag findest, wie im Screenshot dargestellt, so ist mod_rewrite an.

mod_rewrite_enabled_phpinfoEine andere Möglichkeit ist, einfach in der Shell den Befehl php -info einzugeben und dann zu schauen, ob mod_rewrite unter der Rubrik „Loaded Modules“ auftaucht.

Wie aktiviere ich mod_rewrite, wenn es nicht aktiv ist?

Ich möchte hier zwei Möglichkeiten vorstellen, mod_rewrite zu aktivieren. (Es gibt noch eine dritte, sehr einfache Variante, die manchmal am Effektivsten ist: Nämlich einfach den Hoster anzufragen, ob er mod_rewrite aktivieren kann. Manchmal ist dies auch nötig, denn bei bestimmten Hostern sind die Rechte für die Apache-Cofing-Datei beschränkt und man hat gar keine andere Möglichkeit)

1. Die schnelle Variante, mod_rewrite zu aktivieren:

Gebe in der Shell von Linux einfach folgenden Befehl ein:

Dann musst Du noch den Apache-Server neustarten:

Falls dann in der Shell folgendes auftreten sollte …

… versuche es mit Möglichkeit 2:

2. mod_rewrite in apache-Config-Datei anschalten

Das ist etwas kniffliger: zuerst musst du die Datei apache2.config finden, was allerdings sehr einfach über folgenden Shell-Befehl geht:

Hierdurch findest du Einträge wie:

Dann gibst du folgenden Befehl ein:

Und du solltest als Ausgabe sehen, wo die HTTPD_ROOT-Directory ist und wie das SERVER_CONFIG_FILE heißt:

nun weißt du, wie der Pfad zur Datei lautet und kannst diese mit beispielsweise nano (oder alternativ auch per FTP) editieren:

Folgende Zeile muss in der Datei enthalten sein:

Nun muss nur noch der Apache-Server neu gestartet werden …

Und mod_rewrite sollte aktiviert sein.