webentwicklung-frage-antwort-db.com.de

Wie geht WordPress mit Permalinks um?

WordPress korrigiert die Permalinks (URLs) automatisch, auch wenn sie falsch eingegeben wurden. Für z.B. WordPress wird Sie in example.com/some-post landen, auch wenn Sie example.com/idontexist/some-post oder sogar example.com/some eingeben

Es könnte sein, dass WordPress RegEx-like oder einen Matching-Algorithmus verwendet, der von rechts nach links vergleicht, und wenn es eine Übereinstimmung findet, werden Sie auf die Seite weitergeleitet, auch wenn /.*/ links ist. Nur eine Vermutung! Wie macht WordPress das?

Bearbeiten: Ich habe auch festgestellt, dass die .htaccess-Datei mithilfe von !f und !d nach virtuellen Dateien/Verzeichnissen sucht und die Anforderung an index.php im Blog-Ordner umleitet.

11
Praveen Lobo

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

6
Otto

Verwenden Sie das @ JanFabry "Rewrite Analyzer" -Plugin über hier im "offiziellen" WPSE-Plugin-Repository

3
kaiser

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 Funktion /wp-includes/canonical.phpredirect_guess_404_permalink()

$where = $wpdb->prepare( 'post_name LIKE %s', $wpdb->esc_like( get_query_var( 'name' ) ) . '%' );
1
Pramod Jodhani