Zuerst einmal vorweg: Was ist eigentlich mod_rewrite?
Mod_rewrite ist eine Serverseitige Einstellung
mod_rewrite ist ein Apache Modul mit dessen Hilfe wir die URL (Homepageadresse) kürzen können, also eine sogenannte Kurz URL. Mithilfe gewisser Befehle kann man also die Serverseitigen Einstellungen umschreiben (rewrite), um diesen Effekt zu erzielen!
Nutzen für die Suchmaschinen Optimierung
Das mod_rewrite Modul ist ein wichtiges Hilfsmittel für die Suchmaschinenoptimierung, um auf dynamischen Seiten, welche in PHP programmiert wurden, statisch wirkende URL’s zu erzeugen. Also anstatt /beispiel.php?art=cms&art1=joomla sieht die URL der aufgerufenen Seite wie folgt aus /beispiel/cms/joomla.
Auch für den Besucher der Seite wirkt so eine Kurz-URL natürlich wesentlich angenehmer und ist zudem sehr viel einprägsamer als eine scheinbar wahllose Aneinanderreihung von Buchstaben, Zahlen und Zeichen.
Wie kann überprüfen, ob auf meinem Server mod_rewrite eingeschaltet ist?
Um mod_rewrite zu nutzen, ist erst einmal Voraussetzung, dass es Serverseitig eingerichtet ist. Um dies zu überprüfen, haben wir mehrere Möglichkeiten: Wir fragen unseren Provider oder schauen, ob es in der info.php aufgelistet ist. Eine einfache Info-PHP können wir erstellen, indem wir einen Editor öffnen und folgenden Code eingeben:
<?PHP
phpinfo ();
?>
Diese Datei speichern wir als info.php Datei ab und senden diese per FTP in das Root Verzeichnis unseres Servers. Rufen wir nun unsere Domain auf und setzen ans Ende /info.php bekommen wir eine ausführliche Auflistung der Konfiguration unseres PHP.
Eine weitere Möglichkeit ist joomlaintern: Wir bennen unsere htaccess.txt-Datei in .htacces um und fügen folgenden Code ein:
RewriteEngine On Options +FollowSymLinks RewriteRule ^joomla\.html http://www.joomla.org/? [R=301,L]
Anschliessend rufen wir unsere Domain http://www.domain.de/joomla.html mit einem „joomla.html“ am Ende auf. Wenn das funktioniert und wir zu joomla.org weitergeleitet werden, ist mod_rewrite auf dem Server installiert. Andernfalls, bei einer Fehlermeldung, ist keine mod_rewrite auf unserem Server eingerichtet.
Mod-rewrite in Joomla einrichten
In einem ersten Schritt gehen wir in unserem Joomla Backend in die Konfiguration und setzen unter dem Reiter „Suchmaschinenoptimierung (SEO)“ die ersten beiden Punkte auf Ja. Also „Suchmaschinenfreundliche URL“ auf Ja setzen und „URL-Rewrite nutzen“ auf Ja setzen! 
Anschliessend müssen wir noch ein paar kleine Änderungen innerhalb unserer Dateien auf dem Server vornehmen:
Die htaccess.txt-Datei benennen wir um in .htaccess und die web.config.txt bennen wir in web.config um.
In der .htaccess Datei müssen wir zudem die Raute vor dem #RewriteBase / entfernen und falls unsere Homepage in einem Unterordner liegt, diesen nach dem Schrägstrich noch mit eingeben!
Hallo,
zunächst einmal vielen Dank für den tollen Beitrag und die gute Erklärung. Gibt es auch eine Anleitung für WordPress? Da ich Joomla nicht nutze, würde ich mich darüber sehr freuen.
Super Artikel, kurz und knackig :)!!
Gruß
Dank für die kurze und knappe Erläuterung.
Ich habe schone Zeit lange experimentiert „Raute vor dem #RewriteBase / entfernen“ war der Knackpunkt. Jetzt passt das 🙂
Ja, die Raute in der .htaccess Datei verhindert immer, dass ein Befehl ausgeführt wird.
Ist allerdings der Pfad innerhalb des FTP-Bereiches noch ein Anderer,
befindet sich also die Homepage in einem Unterordner, so muss dieser dann auch noch mit angegeben werden!
Vielen Dank für die super Anleitung. Ich habe nur ein Problem, die Home Seite wird angezeigt, wenn ich die Rewrite Funktion aktiviert habe. Aber die Unterseiten funktionieren nicht „Fehler 404“. Weiss jemand wieso?
Funktioniert: http://www.muster.ch/joomla/index.php
Funktioniert nicht: http://www.muster.ch/joomla/index.php/shop
danke für eure Hilfe
Vielleicht hast Du den Pfad in der .htaccess Datei nicht richtig gesetz? Du musst immer auch darauf achten, in welchem Ordner des Root-Verzeichnisses deine Homepage liegt. Ist der Ordner beispielsweise /shop, dann musst du auch /shop hinter RewriteBase eintragen, also so:
RewriteBase /shop
Vielleicht unterstützt dein Provider auch kein mode_rewrite. Dies kannst du bei deinem Anbieter erfragen oder eine PHP-Info Datei hochladen und schauen, ob es aktiviert ist!