如何防止自动重定向?


16

WordPress具有一项功能,如果认为URL书写错误,它将自动重定向您的URL。这是一个示例:我有一个名为my-page

如果我去:

www.mysite.com/something/my-page/

它会立即将我重定向到

www.mysite.com/my-page/

因为第一个URL不存在任何内容。

如何关闭此功能,如果输入的URL错误,则只能获取404?


如果您看到正在发生的事情(通过HttpFox或WireShark或类似的数据包嗅探器),则这些页面将重定向为301状态-永久移动-这是适当的行为。它不仅可以帮助搜索引擎使数据库保持最新状态,而且重定向还可以帮助用户查找页面。当您实际移动页面或更改永久链接时,这可能会影响WordPress处理事情的方式,因此请当心。无论如何,您可以选择,但我不确定这是一个好主意。
s_ha_dum 2012年

我知道这是一件好事,我确实明白这一点。但是,我有一个特殊的用例,不需要使用这种行为。我正在开发一个用于处理URL重定向的插件,因此我想覆盖该行为。
Mazatec,2012年

这是一个更正确的答案:链接
Binod-GoFundMonica 2014年

Answers:


23

这为我工作:

remove_action('template_redirect', 'redirect_canonical');

您能指导我做什么吗?什么是规范重定向?我是wordpress的
新手

您为我省了很多麻烦!谢谢 !:-D
Jenski '16

1
没有地方可以看到这些重定向,以便我们可以一一删除它们。
Shane Jones,

这很棒。您知道为什么wp-admin在使用此功能后仍可能会重定向吗?
Gezim '18年


5

如Ash所建议,您可以使用以下代码关闭该功能:

remove_action('template_redirect', 'redirect_canonical');

在查看canonical.php中的redirect_canonical函数时,您似乎还可以使用自己的过滤器来修改行为。

redirect_canonical()函数的末尾,有一个调用来过滤最终答案:

$redirect_url = apply_filters( 'redirect_canonical', $redirect_url, $requested_url );

因此,您可以根据输入内容编写自己的过滤器,以修改最终重定向或返回null以停止重定向,从而关闭特定URL或URL子集的功能。

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.