RewriteRules sind nuetzlich Tech

WordPress Links umschreiben mit RewriteRules

In der Standard-Einstelung von WordPress werden die Links zu Blog-Artikeln nach dem Datum abgelegt. Es gibt gute Gründe (SEO, Lesbarkeit) warum Wordpress nur noch den Namen des Posts verwenden soll. Was bei der Umstellung zu beachten ist, und wie man sicherstellt, dass die alten Blog-Artikel weiter erreichbar sind erfahrt ihr in diesem Blog-Post.

Bevor es losgeht eine kurze Erklärung der Begrifflichkeiten:

  • Ein Permalink ist ein Hyperlink, der unverändert bleibt und dauerhaft auf eine Seite im Internet verweist.
  • Anders ausgedrückt: mit einem Permalink wird sichergestellt, dass ein einmal eingestellter Blogartikel immer unter der gleichen URL abrufbar ist.
  • Der Begriff Permalink setzt sich zusammen aus den zwei Wörtern “permanent” und “Hyperlink”.

Eine ausführliche Beschreibung der Motivation zur Änderung der Permalink Struktur erspare ich mir und verweise auf den Beitrag von Pascal DIE RICHTIGE (PERMALINK-)URL-STRUKTUR FÜR DEINEN WORDPRESS-BLOG.

Bei der Umstellung gilt es jedoch zu beachten, dass die bereits bestehenden Blog-Artikel nach der Umstellung zunächst nicht mehr über den alten link erreichbar sind.

Abhilfe kann mit Rewrite-Rules geschaffen werden. Diese sorgen dafür dass nach bestimmten Regelen die Anfragen an einen Webserver zum öffnen einer Seite nach festen Regeln umgeschrieben werden. In unserem Fall möchten wir dass die Anfragen die noch das Jahr, den Monat und den Tag enthalten automatisch gekürzt werden:

http://joettis.com/2017/12/13/professional-scrum-master-zertifizierung-bei-scrum-org-psm-ii/ –> http://joettis.com//professional-scrum-master-zertifizierung-bei-scrum-org-psm-ii/

Es gibt mehrere Möglichkeiten wie und wo man diese Weiterleitungsregeln einrichten kann, entweder in der Konfigurations des Webservers selbst (Nginx, Apache) oder in der .htaccess Datei.

Für den Joettis.com Blog verwenden wir die .htaccess Datei, und so sieht sie aus:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

# First rewrite to HTTPS:
RewriteCond %{HTTPS} !=on
RewriteCond %{ENV:HTTPS} !=on
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

# https://yoast.com/research/permalink-helper.php
# RewriteRule ^/([0-9]{4})/([0-9]{2})/([0-9]{2})/(?!page/)(.+)$ https://%{SERVER_NAME}%/$4 [R=307,L]
RedirectMatch 301 ^/([0-9]{4})/([0-9]{2})/([0-9]{2})/(?!page/)(.+)$ https://joettis.com/$4

# Now, rewrite any request to the wrong domain to not use www.
RewriteCond %{HTTP_HOST} ^www\.joettis\.com$
RewriteRule ^(.*)$ https://joettis.com/$1 [L,R=301]

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

Übrigens, das Titelbild habe ich mit dem "Bart Simpson Chalkboard Generator" erstellt.

Thomas Götten

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.