[ad_1]
Was sind Permalinks und was sind vor allem Pretty Permalinks?
Wenn du mit einem Content Management System arbeitest, werden die von dir erstellen Beiträge und Seiten in der Datenbank gespeichert. Bei Aufruf einer URL wird der Eintrag aus der Datenbank abgerufen und mit Hilfe des Themes zu einer hübschen Webseite zusammengesetzt (gerendert), wobei sich „hübsch“ darauf bezieht, dass nicht nur ein Datenbankeintrag ausgegeben wird.
Damit Besucher für die Webseiten ein Lesezeichen (Bookmark) setzen und die Seite Freunden weiterempfehlen können, muss der Abruf über eine permanente Verbindung erfolgen, was als Perma(nent)Link, also Permalink, bezeichnet wird. Dabei wird die Datenbank-ID des Beitrags oder der Seite als GET-Parameter der URL angehängt, z.B. für den Beitrag („post“) mit der ID 42.
Leider sind Menschen furchtbar schlecht darin sich solche IDs zu merken und viel hübscher ist es, dem Beitrag einen Titel zu geben und – in Kleinbuchstaben und mit Bindestrichen aneinandergereiht – der URL anzuhängen: . Hübsch heißt auf Englisch Pretty und spätestend jetzt (wahrscheinlich schon vorher) weißt du, wieso wir von Pretty Permalinks sprechen.
Wieso wird das dann nicht gleich so eingestellt?
Während die Übermittlung von GET-Parametern zum Standard eines Apache2-Webservers gehört, brauchst du für die Weiterleitung (englisch Rewrite) einer URL mit einem Slug (den Kleinbuchstaben mit Bindestrich) ein zusätzliches Server-Modul mod_rewrite, das nicht automatisch bei der Installation von Apache2 eingerichtet wird. Damit WordPress wirklich auf allen Webservern läuft, wird die einfachere Variante mit dem GET-Parameter verwendet – die läuft überall.
OK, jetzt will ich aber umstellen. Was passiert mit den Links?
Erst einmal musst du sicherstellen, dass mod_rewrite auf deinem Server funktioniert. Das lässt sich prüfen, indem du in Einstellungen > Permalinks die URL-Struktur von „einfach“ auf z.B. „Beitragsname“ änderst. Mit dieser Änderung erfolgen zwei Dinge gleichzeitig:
Erstens wird eine Serverkonfigurationsdatei .htaccess angelegt, in der die nötigen Weiterleitungsregeln eingetragen werden. Die besagen sinngemäß „wenn du zu einer URL keine Datei oder Verzeichnis findest, öffne die index.php und gib die URL weiter. WordPress ordnet dann den Slug intern zu, damit die gewünschten Seiten aufgerufen werden können.
Zweitens wird das Navigationsmenü, das du vielleicht schon angelegt hast, so geändert, dass die Links zu Seiten und Beiträgen einen Slug statt des GET-Parameters enthalten. Nur bei „individuellen Links“ wird der GET-Parameter beibehalten. Schlimm? Iwo, weil der GET-Parameter, wie wir gelernt haben, immer funktioniert. Das gilt auch bei interner Verlinkung, die leider nicht automatisch angepasst wird: der Link funktioniert weiterhin, sieht nur nicht so „pretty“ aus.
Ja und muss ich jetzt was bezüglich SEO beachten?
Wenn du von „einfach“ zu „Beitragsname“ wechselst, nicht, weil die URLs mit dem GET-Parameter weiter funktionieren. Umgekehrt wäre blöd, z.B. wenn du aus Kostengründen auf einen sehr einfachen Server wechseln müsstest, der mod_rewrite nicht implementiert hat (Frage an die Redaktion: gibt es sowas überhaupt noch?). Dann würden nämlich die Slugs nicht in eine Weiterleitung aufgelöst und Suchmaschinen würden für all die schönen Seiten und Beiträge nur ein „404 – File not found“ notieren.
Bist du dir da ganz sicher, dass das mit dem GET-Parameter immer klappt?
Ja und dazu gibt es einen kleinen Test, den du bei deiner Website machen kannst: Du erstellst einen Beitrag und verwendest darin den Begriff „Hommingberger Gepardenforelle„. Anschließend rufst du die URL deiner Startseite mit dem GET-Parameter ?s=Hommingberger%20Gepardenforelle auf (sinngemäß sowas wie
Wetten, dass du als Suchergebnis einen Link zum gerade erstellten Beitrag angezeigt bekommst? qed.
Aber, aber … Better Search & Replace?
… kannst du gerne für einzelne Links verwenden, wenn du z.B. auf 42 Seiten den Link /?p=42 verwendet hast und mit ersetzen möchtest.
Keine Ahnung, ob es ein Plugin gibt, dass die GET-Parameter mit dem Slug ersetzt. Das wäre aber wie gesagt sowieso nur etwas „für die Optik“, damit die URL der Links, die in der Statuszeile des Browsers ausgegeben wird, hübscher aussieht.
