禁用Wordpress URL自动完成


15

我最近注意到,Wordpress尝试在未完全提交URL时自动完成URL。例如,我有一个如下所示的帖子网址:

http://www.mysite.com/some-post-title

如果我浏览到以下URL:

http://www.mysite.com/some-post-ti

我可以看到该URL已提交给Wordpress,但Wordpress正在将301重定向到http://www.mysite.com/some-post-title

如何禁用此行为?


Answers:


19

我相信这是redirect_canonical挂钩的功能template_redirect。您应该可以通过以下方式禁用它:

remove_filter('template_redirect', 'redirect_canonical'); 

但是您应该真正考虑是否要这样做,因为它相当复杂并且执行一些重要的SEO功能:

根据站点URL将传入链接重定向到正确的URL。

搜索引擎将www.somedomain.com和somedomain.com都移到相同位置时,它们是两个不同的URL。SEO的这一增强功能通过将所有传入链接重定向到一个或另一个来防止重复内容的损失。

防止对提要,引用,搜索,评论弹出窗口和管理URL进行重定向。不能在不支持永久链接的IIS 7,页面/帖子预览,WP管理员,引用,robots.txt,搜索或POST请求上重定向。

当用户根据准确的WordPress查询输入不存在的URL时,也会尝试找到正确的链接。而是尝试解析URL或查询,以试图找到正确的页面。

http://core.trac.wordpress.org/browser/tags/3.5.1/wp-includes/canonical.php#L13

以下内容可能会在不弄乱SEO组件的情况下终止自动补全功能,但我不能保证这一点。该代码几乎没有经过测试,因为我从未希望禁用它。我真的必须学习redirect_canonical以确保任何事情。

function kill_404_redirect_wpse_92103() {
  if (is_404()) {
   add_action('redirect_canonical','__return_false');
  }
}
add_action('template_redirect','kill_404_redirect_wpse_92103',1);

我将此代码段添加到了/wp-includes/canonical.php文件的末尾,并且重定向仍在进行。难道我做错了什么?还有其他人无法禁用此行为吗?
user1380540

4

让这种“猜测”自动发生似乎是非常不负责任的。如果有一些定义哪个是正确页面的方法,我将更加开放。

我有许多按顺序构建的页面,并且这种自动猜测错误地选择了响应(随机?)顺序中某个位置的页面,而不是起始页面。

更新:这是已知的行为,正在这里进行考虑:https : //core.trac.wordpress.org/ticket/16557


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.