WordPressはパーマリンクをどのように処理しますか?


11

WordPressは、誤って入力された場合でもパーマリンク(URL)を自動修正します。たとえば、WordPressは、example.com/some-postたとえ入力したexample.com/idontexist/some-post場合でも、example.com/some

WordPressは、RegExのような、または右から左に比較するいくつかのマッチングアルゴリズムを使用しており、一致が見つかった場合/.*/、左側に残っていてもページに移動します。推測です!WordPressはどのようにこれを行いますか?

編集:私はまた、仮想ファイル/ディレクトリの.htaccessファイルのチェックが使用していることに気づいた!f!dし、ブログのフォルダ上のindex.phpに要求をリダイレクトします。

回答:


6

/wp-includes/canonical.phpのredirect_canonical関数は、任意のURLで呼び出され、URLが存在しない場合に、ユーザーが希望するURLを最適に推測し、そこにリダイレクトしようとします。これには、あらゆる種類の一般的なエラーに対してこれを行うための非常に大量のコードがあります。


1
「全額」に賛成:D。
Travis Northcutt


1

とても簡単です。WordPressはSQLクエリでLIKE演算子を使用して、404ページの場合、部分的なURLから完全なURLを推測します

/wp-includes/canonical.php redirect_guess_404_permalink()関数から取得したこのコードを確認してください

$where = $wpdb->prepare( 'post_name LIKE %s', $wpdb->esc_like( get_query_var( 'name' ) ) . '%' );
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.