Webentwicklung · 4 min read · Jan 02, 2026
Die nützlichen Anwendungen von Mod Rewrite
Die nützlichen Anwendungen von Mod Rewrite
Autor: Mike Ems
In diesem Tutorial werde ich erklären, was Mod Rewrite ist und einige Beispiele für seine Anwendungen geben. Mod Rewrite ist ein leistungsstarkes Werkzeug und eine der einfachsten Möglichkeiten, Ihre Website SEO-freundlicher zu gestalten.
Was ist Mod Rewrite?
Mod Rewrite ist ein Teil von Apache-Servern, der angeforderte URLs dynamisch umschreiben kann. Da es eine endlose Anzahl von Regeln unterstützt, die wiederum unbegrenzte angehängte Regelbedingungen haben, ist es sehr flexibel und ein wichtiges Mechanismus zur URL-Manipulation. Es kann sowohl für Internetnutzer als auch für suchmaschinenfreundliche URLs verwendet werden. Dies erhöht die Chance, dass die datenbankgesteuerte Website indexiert wird.
Aktivieren / Installieren von Mod Rewrite
Das erste, was wir tun möchten, ist sicherzustellen, dass wir mod_rewrite auf unserem Server haben. Standardmäßig hat Apache mod_rewrite installiert, aber nicht aktiviert. Der einfachste Weg, um zu testen, ob mod_rewrite auf Ihrem Server aktiviert ist, besteht darin, eine .htaccess-Datei in einem Testverzeichnis wie /modrewrite-test/.htaccess mit folgendem Inhalt zu erstellen:
Options +FollowSymLinks
RewriteEngine OnVersuchen Sie nun, auf das Unterverzeichnis zuzugreifen. Es könnten zwei Dinge passieren:
- Keine Fehler Glückwunsch, die mod_rewrite-Engine ist jetzt aktiviert.
- 500, Interner Serverfehler Wenn Sie diese Nachricht erhalten, wurde mod_rewrite nicht auf Ihrem Server installiert/aktiviert.
Wenn Sie festgestellt haben, dass mod_rewrite nicht auf Ihrem Server installiert war, befolgen Sie diese Schritte.
- Finden Sie die httpd.conf-Datei (normalerweise finden Sie sie in einem Ordner namens conf, config oder etwas in der Art)
- Kommentieren Sie in der httpd.conf-Datei die Zeile LoadModule rewrite_module modules/mod_rewrite.so aus (entfernen Sie das Rautezeichen ‘#’ vor der Zeile)
- Finden Sie auch die Zeile ClearModuleList, die nicht auskommentiert ist, und stellen Sie sicher, dass die Zeile AddModule mod_rewrite.c nicht auskommentiert ist.
Nach diesen Schritten starten Sie Ihren Apache-Server mit folgendem Befehl neu.
/etc/init.d/httpd restartSie sollten jetzt mod_rewrite erfolgreich aktiviert haben. Stellen Sie sicher, dass Sie mod_rewrite erneut testen, sobald der Apache-Server neu gestartet wurde.
Verwendung von Mod Rewrite, um immer WWW zu entfernen / hinzuzufügen
Ein leicht zu behebendes Problem, das viele Websites haben, sind doppelte Ergebnisse in Suchmaschinen. In jeder Suchmaschine sind http://www.example.com/ und http://example.com zwei völlig verschiedene Websites. Dies ist ein großes Problem, da der Inhalt Ihrer Website als doppelter Inhalt identifiziert wird, was Ihre Suchmaschinen-Rankings herabsetzt. Mit unserem neuen Freund, mod_rewrite, können wir dieses Problem angehen.
Ganz oben in jeder .htaccess-Datei müssen Sie Mod Rewrite aktivieren. Dies sollte immer ganz oben in Ihrer .htaccess-Datei stehen. Sie müssen Mod Rewrite nur einmal aktivieren.
RewriteEngine OnZusätzlich müssen Sie Ihre Rewrite Base festlegen. Dies ist normalerweise das Verzeichnis, in dem sich die .htaccess-Datei befindet. Wenn sich Ihre .htaccess-Datei in Ihrem Stammverzeichnis befindet, würde Ihre Rewrite Base so aussehen:
RewriteBase /Nun gibt es zwei Optionen zur Auswahl. Sie können entweder wählen, immer das www zu entfernen oder es immer beizubehalten. Um immer www zu entfernen (meine bevorzugte Methode), erstellen Sie eine .htaccess-Datei in Ihrem Stammverzeichnis. Fügen Sie in dieser Datei Folgendes hinzu:
RewriteCond %{HTTP_HOST} ^www.example.com$ [NC]
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]Ebenso, wenn Sie immer www hinzufügen möchten, fügen Sie Folgendes zu Ihrer .htaccess-Datei hinzu:
RewriteCond %{HTTP_HOST} ^example.com$
RewriteRule (.*) http://www.example.com$1 [R=301]Stellen Sie sicher, dass Sie example.com durch Ihre Domain ersetzen.
Verwendung von Mod Rewrite zur Bereinigung Ihrer URLs
Die beliebteste Verwendung von Mod Rewrite besteht darin, es zu verwenden, um die URLs Ihrer Website zu bereinigen. Wie Sie vielleicht wissen, interessieren sich Suchmaschinen nicht besonders für URLs mit vielen Argumenten, wie viele Websites sie bereitstellen. Beispiel:
http://www.example.com/index.php?p=aboutMit der Kraft des mod_rewrite Apache-Moduls können wir diese URL viel sauberer gestalten.
http://www.example.com/about.htmlUm dies zu erreichen, sehen wir uns unseren guten Freund reguläre Ausdrücke an. Ich weiß, dass Sie jetzt wirklich aufgeregt sind. Um die obige Umschreibung zu erreichen, habe ich Folgendes zu meiner .htaccess-Datei nach den Zeilen zum Hinzufügen/Entfernen von www hinzugefügt.
RewriteRule ^([^/]+).html$ /index.php?p=$1 [QSA,L,NC]Lassen Sie uns diese Zeile genauer betrachten, damit wir wirklich verstehen, was sie tut.
([^/]+)Dies ist der reguläre Ausdruck, um alles außer einem Vorwärtsschrägstrich zu erfassen. Dies ist der einfachste Weg, um alles zu erfassen, was zwischen zwei Vorwärtsschrägstrichen liegt, wenn es um das Umschreiben von URLs geht.
.htmlDies schreibt die URL so um, dass sie am Ende .html hat. Dies gibt der PHP-Datei das Aussehen einer regulären .html-Datei.
/index.php?p=$1Dies ist der Teil der Umschreibung, der den ursprünglichen Standort angibt. Jedes Mal, wenn Sie einen regulären Ausdruck im ersten Teil haben, der eine bestimmte Zeichenfolge erfasst, sollten Sie ihn in diesem Teil referenzieren. Das $1 verweist auf den ersten regulären Ausdruck in der ersten Hälfte der Zeile. Jeder Wert, der der Variablen p zugewiesen wird, wird dort platziert, wo der erste reguläre Ausdruck in der ersten Hälfte der Zeile steht.
Wenn Sie möchten, dass Ihre URL wie ein Verzeichnis aussieht, würden Sie diese Zeile anstelle der zuvor angegebenen verwenden.
RewriteRule ^([^/]+)/?$ /index.php?p=$1 [QSA,L,NC]Dies würde URLs wie diese zurückgeben:
http://www.example.com/about/Hinzufügen eines abschließenden Schrägstrichs zu Ihren URLs
Der Hauptpunkt beim Hinzufügen eines abschließenden Schrägstrichs zu Ihren URLs ist, dass er die Serverleistung erhöht. Wenn ein abschließender Schrägstrich am Ende einer URL hinzugefügt wird, die nicht mit einer Dateierweiterung endet, teilt dies dem Server mit, dass nur ein Aufruf an sich selbst gemacht werden soll, wodurch der Serververkehr verringert wird.
Um immer einen abschließenden Schrägstrich zu einer URL hinzuzufügen, die nicht mit einer Dateierweiterung endet, wie z.B. http://www.example.com, fügen Sie Folgendes zu Ihrer .htaccess-Datei in Ihrem Stammverzeichnis hinzu.
rewriteCond $1 !/$
rewriteCond %{REQUEST_FILENAME}/ -d
rewriteRule (.+) http://www.example.com/$1/ [R=301,L]Die erste Zeile überprüft, ob kein abschließender Schrägstrich vorhanden ist. Die zweite Zeile überprüft, ob ein Verzeichnis mit der angegebenen URL existiert, wenn der abschließende Schrägstrich hinzugefügt wird. Die dritte Zeile fügt den abschließenden Schrägstrich hinzu und leitet den Benutzer um.
Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.