Auch heute hatte ich wieder ein kleineres Problem was zu lösen war. Das Apachemodul mod_rewrite wollte nicht funktionieren.
Der Beitrag ist in zwei Teile aufgeteilt: Im ersten Teil beschreibe ich die normale Konfiguration und Installation und im zweiten dann mein spezielles Problem.
Aktivierung
Das Aktivieren geht eigentlich sehr schnell und einfach. Dafür führen wir folgende Befehle aus.
sudo -s a2enmod rewrite service apache2 restart
Der erste gibt uns dauerhafte root-Rechte, damit wir unser Passwort nicht dauernd eingeben müssen. Der zweite aktiviert das Module mod_rewrite und der dritte startet Apache 2.2 neu damit die Änderungen eingelesen werden.
Damit wir in unseren www-Verzeichnis nun .htaccess
Dateien nutzen können müssen wir noch zwei Einstellungen ändern.
Dafür öffnen wir die Datei /etc/apache2/sites-available/default mit root-Rechten und bearbeiten folgende zwei Sachen:
In dieser Datei muss im Abschnitt
und >, dort muss die Eigenschaft AllowOverride von None auf All gesetzt werden.
Danach muss der Apache Server erneut neu gestartet werden. (service apache2 restart
)
Mein Problem
Auch nachdem Aktivieren von mod_rewrite funktionierte keine der Umleitungen mehr. Allerdings warfen sie keine 500-er Fehler mehr sondern 404-er Fehler. Im Errorlog (/var/log/apache2/error.log
) fand sich folgende Zeile:
[Mon Jan 14 17:11:05 2013] [error] [client 127.0.0.1] Negotiation: discovered file(s) matching request: /var/www/notesafe/login (None could be negotiated)., referer: http://localhost/notesafe/
Nach ein wenig Recherche fand ich heraus das das Modul negotiation von Apache sich mit rewrite beißt und die Requests „klaut“.
Wenn man das Modul deaktiviert und den Server neustartet, funktioniert alles.
a2dismod negotiation service apache2 restart