WordPress如何处理永久链接?


11

WordPress会自动更正永久链接(URL),即使输入错误也是如此。例如,example.com/some-post即使您输入example.com/idontexist/some-post甚至example.com/some

可能是,WordPress使用了RegEx like或某种匹配算法,该算法从右到左进行比较,如果找到匹配项,即使/.*/左侧有剩余,它也将带您进入页面。只是一个猜测!WordPress如何做到这一点?

编辑:我还注意到.htaccess文件使用!f和检查虚拟文件/目录!d,并将请求重定向到博客文件夹上的index.php。

Answers:


6

/wp-includes/canonical.php中的redirect_canonical函数在任何给定的URL上调用,并且将尝试最佳猜测用户所需的URL,并在URL不存在时将其重定向到该URL。它为处理各种常见错误提供了大量的代码。


1
为“大量”投票:D。
Travis Northcutt


1

很简单 WordPress在404页面中使用LIKE运算符在SQL查询中从部分URL猜测完整URL

检查从/wp-includes/canonical.php redirect_guess_404_permalink()函数获取的此代码

$where = $wpdb->prepare( 'post_name LIKE %s', $wpdb->esc_like( get_query_var( 'name' ) ) . '%' );
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.