Wie geht WordPress mit Permalinks um?


11

WordPress korrigiert die Permalinks (URLs) automatisch, auch wenn sie falsch eingegeben wurden. Zum Beispiel wird WordPress Sie example.com/some-postauch dann landen , wenn Sie eintreten example.com/idontexist/some-postoder sogarexample.com/some

Es kann sein, dass WordPress RegEx like oder einen Matching-Algorithmus verwendet, der von rechts nach links verglichen wird. Wenn eine Übereinstimmung gefunden wird, werden Sie zur Seite weitergeleitet, auch wenn /.*/links noch eine Seite vorhanden ist. Nur eine Vermutung! Wie macht WordPress das?

Bearbeiten: Ich habe auch festgestellt, dass die .htaccess-Datei nach virtuellen Dateien / Verzeichnissen sucht !fund !ddie Anforderung an index.php im Blog-Ordner weiterleitet.

Antworten:


6

Die Funktion redirect_canonical in /wp-includes/canonical.php wird für eine bestimmte URL aufgerufen und versucht, die vom Benutzer gewünschte URL zu erraten und dorthin umzuleiten, wenn keine URL vorhanden ist. Es gibt eine ganze Menge Code, um dies für alle Arten von häufigen Fehlern zu tun.


1
Upvoted für "ganze riesige Menge": D.
Travis Northcutt


1

Es ist ziemlich einfach. WordPress verwendet den LIKE-Operator in der SQL-Abfrage, um die vollständige URL aus der Teil-URL zu erraten, wenn es sich um eine 404-Seite handelt

Überprüfen Sie diesen Code aus der redirect_guess_404_permalink()Funktion /wp-includes/canonical.php

$where = $wpdb->prepare( 'post_name LIKE %s', $wpdb->esc_like( get_query_var( 'name' ) ) . '%' );
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.