使用过时的URI正确加载已移动的页面(新的父级)。为什么?

时间:2015-06-24 作者:Jeff Cohan

我希望有人能解释WordPress知道如何正确地提供已移动的页面,即使使用“移动前”URI。我希望得到一个“404”。相反,WordPress使用新的URI重定向到页面。

背景:

该网站的“我们的服务”分支的原始结构如下所示(使用post\\u名称值和前导连字符表示沿袭):

our-services
- technical-writing
- graphic-design
- project-support
客户决定让平面设计和项目支持技术写作的孩子。生成的结构如下所示:

our-services
- technical-writing
- - graphic-design
- - project-support
让我困惑的是:

如果您将浏览器指向此。。。

http://example.com/our-services/graphic-design/
或者这个。。。

http://example.com/our-services/project-support/
。。然后浏览器将重定向到此。。。

http://example.com/our-services/technical-writing/graphic-design/
而这个。。。

http://example.com/our-services/technical-writing/project-support/
分别为。

请注意,我不是在抱怨。但我不明白这是怎么回事,我想知道。

注意:正在尝试从根目录访问这些页面。。。

http://example.com/graphic-design/
或。。。

http://example.com/project-support/
does 导致预期的“404/未找到”。

这个htaccess文件具有默认的WordPress指令,在这些指令之上:

RewriteEngine on
RewriteCond %{HTTP_HOST} !^example\\.com$
RewriteRule ^ http://example.com%{REQUEST_URI} [L,R=301]

1 个回复
最合适的回答,由SO网友:Und3rTow 整理而成

WordPress使用redirect_guess_404_permalink() 作为其一部分的功能canonical api 要产生这些结果:

当用户输入一个基于WordPress查询不存在的URL时,也会尝试查找正确的链接。将尝试解析URL或查询,以找到要转到的正确页面。

你可以disable 通过过滤器或使用suitable plugin, 也可以通过。htaccess文件。

结束

相关推荐

Dynamic Custom Permalinks

我有一个场景,其目的是创建可以动态更改的自定义永久链接,例如:如果显示国家信息,则URL应为http://example.com/country-information如果显示特定国家的城市信息,则URL应如下所示http://example.com/country/city-information. 我怎样才能做到这一点?