1000 FAQ, 500 Anleitungen und Lernvideos. Hier gibt es nur Lösungen!
Unterstützung von URL Rewriting
URL-Rewriting ist ein Verfahren, um den angezeigten Namen von Webseiten zu ändern. Diese Umschreibung erfolgt jedoch nur durch virtuelle Weiterleitungen des neuen (angezeigten) Namens auf den alten Namen (den ein Besucher nicht sieht). Der eigentliche Seitenname ändert sich also nicht.
Im Allgemeinen sollen damit Seitennamen "lesbarer" gemacht werden, indem z.B. die URL dynamischer Seiten verborgen werden. Dann sieht niemand, dass es sich um dynamische Seiten mit langen Adressen handelt. Das ist zum einen bequemer für Besucher und zum anderen sehr wichtig für die Eintragung der Seiten bei Suchmaschinen, denn lange, komplizierte Adressen werden von Suchmaschinen i.A. nicht berücksichtigt.
Vorgehensweise
1. Umschreiben der Seitennamen
Die URL der Seite "artikel.php?id=25&kategorie=4&seite=3" könnte in "artikel-25-4-3.html" oder auch "titel-artikel-25-4-3.html" umgeschrieben werden. Nachfolgend sehen Sie, was dafür in der .htaccess-Datei eingetragen sein muss (wobei wir davon ausgehen, dass die Datei artikel.php sich im Verzeichnis web/admin/ des Servers befindet.
Options +FollowSymlinksRewriteEngine onRewriteBase /admin/RewriteRule ^article-([0-9]*).([0-9]*).([0-9]*).html$ article.php?id=$1&categorie=$2&page=$3 [L]
Die Zeile "Options +FollowSymlinks" gestattet die Verwendung symbolischer Links. Sie ist nicht immer notwendig.
Die Zeile "RewriteEngine on" dient zur Aktivierung von mod_rewrite in Apache, d.h. zur Aktivierung des URL-Rewritings.
Die Zeile "RewriteBase /admin/" dient zur endgültigen Festlegung des Arbeitsverzeichnisses der nachfolgenden Dateien (artikel.php usw.).
Die Zeile "RewriteRule" sieht vielleicht etwas komplizierter aus, muss aber für jede URL, die umgeschrieben werden soll, hinzugefügt werden.
In unserem Beispiel gibt es nur eine URL, die wie folgt aufgelöst wird:
Das erste Zeichen "^" gibt den Anfang eines virtuellen Dateinamens an, der weiterzuleiten ist.
Das Zeichen "$" nach ".html" gibt das Ende dieses virtuellen Dateinamens an.
Jede Gruppierung von "([0-9]*)" basiert auf den regulären Ausdrücken und gibt an, dass eine Abfolge von Ziffern von 0 bis 9 vorhanden sein wird und den entsprechenden Variablen "$1", "$2" und "$3" zugeordnet wird, die am Zeilenende angegeben sind.
Das Zeichen "[L]" bedeutet ein Zeilenende, d.h. das Ende der Umschreiberegel dieses Elements.
Wenn ein Besucher Ihrer Website also die Adresse "artikel-25-4-3.html" aufruft, leitet die .htaccess-Datei ihn nun im Hintergrund auf die Seite "artikel.php?id=25&kategorie=4&seite=3" weiter.
Vorsicht: Auch wenn URL-Rewrite-Regeln vorhanden sind und funktionieren, können die Seiten nach wie vor über die alte URL samt Parametern aufgerufen werden. Daher müssen sämtliche Links Ihrer Website in das neue Format umgeschrieben werden.
Wie Sie komplexere Rewrite-Regeln erstellen, erfahren Sie in der Apache-Dokumentation zum URL-Rewriting.
2. Ständige Weiterleitung auf eine andere Domain
Falls Ihre Website auf mehrere Domains verteilt ist und Sie jede Domain verwenden wollen, können Sie alle Seitenabfragen an eine andere Domain weiterleiten, sodass Ihre Hauptdomain in der Adressleiste angezeigt bleibt. Wenn z.B. "www.domain.xyz" und "www.meine-domain.com" auf die gleiche Website verweisen und die erste die Hauptdomain ist, muss die .htaccess-Datei im Stammverzeichnis der ersten Domain folgende Inhalte haben:
RewriteEngine OnRewriteRule ^(.*)$ http://www.meine-domain.xyz/$1 [R=301]
Auf diese Weise wird der Name jeder aufgerufenen Seite von "www.domain.xyz" in transparenter Weise übernommen und in "www.meine-domain.xyz" geöffnet. [R=301] bedeutet ständige Weiterleitung.