Raspberry Pi

Raspberry Pi: Htaccess und mod_rewrite unter Apache aktivieren

Raspberry Pi: Htaccess und mod_rewrite unter Apache aktivieren

Mit Hilfe einer .htaccess Konfigurationsdatei können bei Webservern datei- und verzeichnisbezogene Regeln aufgestellt werden. Dazu zählt die Festlegung von Zugriffsrechten, Weiterleitungen und vieles mehr. Die Rewrite Engine (mod_rewrite) ermöglicht dabei das Umschreiben der URLs einer Webseite. Hintergrund dessen ist die suchmaschinenfreundliche Anpassung der Linkstruktur. In diesem Beitrag wird dir erklärt wie du htaccess und mod_rewrite unter Apache aktivierst und anwendest.

Htaccess aktivieren

Um .htaccess Dateien verwenden zu können, muss die AllowOverride Einstellung in der Apache 2 Konfiguration angepasst werden. Dazu öffnen wir die 000-default Datei.

sudo nano /etc/apache2/sites-enabled/000-default

In der Konfiguration ändern wir unter dem Verzeichnis (Directory) /var/www/ den Punkt AllowOverride None zu AllowOverride All. Mit der Tatenkombination Strg+O und Strg+X speichern und schließen wir die Konfigurationsdatei. Das wars auch schon. Jetzt ist htaccess aktiviert und kann verwendet werden.

An dieser Stelle möchte ich noch einen kleine Tipp zur gerade angepassten Config geben: Ebenfalls unter den Verzeichniseinstellungen von /var/www/ war die Option Options Indexes FollowSymLinks MultiViews eingetragen.

Wenn Ihr euren Webserver bzw. eure Webseite im Internet freigegeben habt und gleichzeitig im Verzeichnis /var/www/ mal keine index.html oder index.php vorhanden ist, würden beim aufrufen des Webservers alle Dateien im Verzeichnis angezeigt werden.

Um dies zu verhindern muss die gerade angesprochene Zeile zu Options -Indexes FollowSymLinks MultiViews abgewandelt werden.

Apache2 Config - htacces aktivieren

Apache2 Config – htacces aktivieren

Htaccess testen

Zur Überprüfung der richtigen Funktionalität legen wir eine .htaccess Datei an. Dabei wechseln wir zunächst in das Verzeichnis /var/www/.

cd /var/www

Dort legen wir jetzt mit dem Editor nano eine .htaccess Datei an.

sudo nano .htaccess

Zum testen richten wir eine dauerhaft Weiterleitung ein, d.h. wenn die IP-Adresse des Raspberry Pi aufgerufen wird, werdet Ihr zu der festgelegten URL weitergeleitet.

Redirect 301 / https://www.einplatinencomputer.com/clear

.htaccess redirect - Screenshot Rasperry Pi

.htaccess redirect – Screenshot Rasperry Pi

Die Datei wird mit der gewohnten Tastenkombination gespeichert. Anschließend ruft Ihr mit dem Browser eurer Wahl die IP-Adresse des Pi´s auf. Wenn alles richtig funktioniert werdet Ihr direkt zur Webseite von Einplatinencomputer.com weitergeleitet.

mod_rewrite

Mit der Rewrite Engine hat man die Möglichkeit lange URL-Strukturen suchmaschinenfreundlich umzuschreiben. Somit kann z.B. aus www.domain.de/index.php?content=Anmelden eine kurzer Link werden, den der Apache interpretieren kann: www.domain.de/Anmelden.

Zum aktivieren von mod_rewrite geben wir folgendes in das terminal ein.

sudo a2enmod rewrite

Die Meldung Enabling module rewrite. signalisiert uns, dass die die Rewrite Engine erfolgreich aktiviert wurde. Gleichzeitig müssen wir den Apache neustarten damit die Änderungen wirksam werden.

sudo /etc/init.d/apache2 restart oder service apache2 restart

Geschafft! Jetzt können htaccess Datein und die Rewrite Engine genutzt werden.

mod_rewrite Beispiel

Zur Vollständigkeit des Artikels möchte ich noch darauf hinweisen, dass es zur Entwicklung und Aufstellung von sogenannten RewriteRules für mod_rewrite zahlreiche Tutorials im Netz gibt. Im Verlauf des Beitrags hatte ich ein kleines Beispiel angebracht das ich in dieser oder ähnlicher Form für kleine Projekte verwende. So sieht dazu meine .htaccess Datei aus:

Options -MultiViews
RewriteEngine on
RewriteBase /
RewriteRule ^(.*)$ index.php?content=$1 [QSA]

Vielen Dank fürs Lesen! Ich freu mich auf euer Feedback :)

Quellen (Stand: 8.9.14): wikipedia.org, bitblokes.de

Hinterlasse eine Antwort

Kommentar

  • Vielen vielen Dank für die Anleitung. Hatte meinen Raspi neu aufgesetzt und plötzlich funktionierten die Permalinks meiner Homepage nicht mehr. Habe ewig nach dem Problem gesucht und dank deinem Artikel funktionieren die Permalinks endlich wieder. Da hat wohl Rasbian in der aktuellen Version standard mäßig den ReWrite_mod deaktiviert.

    Gruß

    Micha