Ein Blog über Code, Hardware und Co

Wordpress und Webentwicklung

Trailing-Slash in WordPress hinzufügen

Oder: Wie du mittels .htaccess ein Trailing-Slash an alle deine URLs anfügst, ohne die WordPress-REST-API zu zerstören

Hängt man nun ein Trailing-Slash an die URL oder nicht? Eigentlich ist das mittlerweile völlig egal. Wichtig ist aber, dass man es einheitlich macht und vor allem die jeweils andere URL auf die jeweilige URL mit oder ohne Trailing-Slash weiterleitet um duplicate Content zu vermeiden.

Was ist überhaupt ein Trailing Slash?
Ein "Trailing Slash" bezeichnet, wenn am Ende einer URL noch ein abschließendes Slash-Zeichen ("/") vorhanden ist.
Also zum Beispiel:
https://meinedomain.de/pfad/zum/inhalt/

Ohne Trailing-Slash sieht die URL wie folgt aus:
https://meinedomain.de/pfad/zum/inhalt

Es ist wichtig zu wissen, dass es sich rein technisch bei URLs mit und ohne Trailing Slash um unterschiedliche URLs, also eigenständige Seiten, handelt, bei denen z.B. Suchmaschinen eigentlich einen unterschiedlichen, eigenen Inhalt erwarten.

Das Trailing-Slash und Duplicate Content

Viele Webseitenbetreiber verstehen aber semantisch beide URLs als eine Seite, auf denen sich auch der gleiche Inhalt befindet. Das ist auch nachvollziehbar, ist aber genau gesehen duplicate Content. Zwar sind google und Co mittlerweile eigentlich schlau genug, um zu erkennen, dass es sich nicht um duplicate Content handelt (Duplicate Content unter einer Domain ist ohnehin nicht mehr sooooo schlimm)., trotzdem sollte man es natürlich richtig machen.

So machst du es richtig: Trailing-Slash in WordPress hinzufügen

Ich gehöre eher der Fraktion an, die ein Trailing-Slash verwendet. Slashes trennten ursprünglich Verzeichnisse in einem Pfad voneinander ab, so sollten sie auch die URL am Ende begrenzen.
Ich zeige dir, wie du in WordPress Trailing-Slashes verwendest.

Gesamtzeit: 10 Minuten

1) Permalinks einstellen

Zunächst ist es wichtig, dass das WordPress-System an sich die URLs (zum Beispiel im Menü, bei verwandten Beiträgen und Co) mit einem Trailing-Slash versieht.

Das kann man einfach über die Permalink-Einstellungen unter “Einstellungen -> Permalinks” einstellen.
Dort muss man einfach sichergehen, dass hinter der Linkstruktur (besonders, wenn man eine individuelle Linkstruktur verwendet) ein Trailing-Slash vorhanden ist.

2) Weiterleitung per .htaccess vornehmen

Jetzt musst du noch eine Ergänzung in deiner .htaccess-Datei (sofern du einen APACHE-Webserver nutzt) vornehmen.
Die folgenden Zeilen werden in der .htaccess-Datei eingefügt.

<IfModule mod_rewrite.c>
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !^/wp-json
RewriteCond %{REQUEST_URI} !^/wp-admin
RewriteCond %{REQUEST_URI} !^/([_0-9a-zA-Z-]+)/wp-json
RewriteCond %{REQUEST_URI} !^/([_0-9a-zA-Z-]+)/wp-admin
RewriteRule ^([^.]+)([^./])$ %{REQUEST_URI}/ [L,R=301,NE]
</IfModule>

Achtung, füge die Zeilen vor “#BEGIN WordPress” ein – alle Änderungen danach werden von WordPress überschrieben.

Achtung: Sonderfall WordPress-API!

Es kann unter Umständen passieren, dass nach dem Umleiten der Anfragen ohne Trailing-Slash auf die URL mit Trailing-Slash z.B. der Block-Editor nicht mehr funktioniert. Das Verhalten äußert sich schlicht, indem Beiträge z.B. nicht mehr gespeichert oder aktualisiert werden können.
Das liegt daran, dass auch für die WordPress-API URLs mit und ohne Trailing-Slash als eigenständige URLs behandelt und daher einzelne Routen ggf. nach der Umleitung nicht mehr funktionieren.

Dieser Fehler tritt in deren Regel bei anderen oder einfacheren Weiterleitungen über die .htaccess-Datei auf. Der oben verwendete Code sorgt auf jeden Fall dafür, dass auch die API weiter funktioniert 😉

Tipp: Der classic-Editor nutzt nicht die REST-API und sollte auf jeden Fall weiter funktionieren.

Schreibe eine Antwort