WordPress corrige automatiquement les permaliens (URL) même s’il n’est pas entré correctement. Par exemple WordPress vous atterrira dans example.com/some-post
même si vous entrez example.com/idontexist/some-post
ou même example.com/some
Il se peut que WordPress utilise RegEx comme ou un algorithme de correspondance qui se compare de droite à gauche et s’il trouve une correspondance, il vous mènera à la page même s’il reste /.*/
à gauche. Juste une supposition! Comment WordPress fait-il cela?
Edit: J'ai également remarqué que le fichier .htaccess vérifie la présence de fichiers/répertoires virtuels à l'aide de !f
et !d
et redirige la demande vers index.php dans le dossier du blog.
La fonction redirect_canonical dans /wp-includes/canonical.php est appelée sur une URL donnée et tentera de deviner l'URL souhaitée par l'utilisateur et de la rediriger vers cette URL lorsqu'une URL n'existe pas. Il a une énorme quantité de code pour le faire pour toutes sortes d'erreurs courantes.
Utilisez le plug-in "Rewrite Analyzer" de @JanFabry sur ici, dans le référentiel "officiel" du plug-in WPSE
C'est assez simple. WordPress utilise l'opérateur LIKE dans une requête SQL pour deviner l'URL complète à partir de l'URL partielle lorsqu'il s'agit d'une page 404
Vérifiez ce code issu de la fonction /wp-includes/canonical.php redirect_guess_404_permalink()
$where = $wpdb->prepare( 'post_name LIKE %s', $wpdb->esc_like( get_query_var( 'name' ) ) . '%' );