Як 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

Функція redirect_canonical в /wp-includes/canonical.php викликається будь-якою вказаною URL-адресою і спробує найкращим чином відгадати потрібний користувач та перенаправити їх туди, коли URL-адреса не існує. У ньому є величезна кількість коду, щоб зробити це для всіляких поширених помилок.


1
Оголошено за "цілу величезну суму": D.
Травіс Нортчетт


1

Це досить просто. WordPress використовує оператор LIKE в SQL-запиті, щоб відгадати повну URL-адресу з часткової URL-адреси, коли це сторінка 404

Перевірте цей код, взятий з /wp-includes/canonical.php redirect_guess_404_permalink()функції

$where = $wpdb->prepare( 'post_name LIKE %s', $wpdb->esc_like( get_query_var( 'name' ) ) . '%' );
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.