冻结子页面URL,以便父固定链接更改不会给出404?

时间:2018-04-18 作者:PeterB

情境:我们有很多页面,有很多人在编辑。

有没有办法冻结子页面URL,因此如果父页面的永久链接被更改,那么旧URL上的子页面不会404?

另一种方法是确保所有子级在更改父永久链接时都创建了重定向规则。我对此不太感兴趣,因为当编辑器多次更改永久链接时,我们已经为父页面设置了多个重定向(以修复拼写错误/因为他们被告知这样做)

2 个回复
SO网友:noahmason

If your concern is about internal links, 您应该使用get_permalink() 功能,并在菜单中使用适当的导航菜单对象,从不自定义URL。

如果要在内容中执行此操作,请避免使用TinyMCE中的超链接功能,并制作类似以下内容的快捷码:

[permalink id="1"]link text[/permalink]. 注册短代码非常简单。

总之,总是从IDs获取永久链接。

If your concern is about external links, 重定向是唯一有帮助的。如果你有一个非常高性能的页面或帖子,这是值得的。如果没有,那就麻烦多了。

301 Redirects / template_redirect hook

您可以在更改页面的永久链接时使用301重定向,以确保旧URL重定向。您还可以将操作添加到template_redirect 钩子,但如果您碰巧添加了与旧重定向页面具有相同URL的新页面,祝您调试顺利;)

如果您确实想确保父级不影响子级,请考虑从嵌套URL中删除父级slug,并强制子级生活在同一级别(URL方面),无论是否为父级。2页不能有相同的slug,无论其祖先是谁,所以这样做是完全安全的。这可以通过过滤WP来实现rewrite 规则。

SO网友:Akshat

添加太多重定向不是一个好主意,您可以使用以下任何插件Search & Replace 若要替换数据库中的url,并且您的页面具有SEO排名,则可以添加301重定向。htaccess将更改通知搜索引擎。

结束

相关推荐

Broken page redirect

我尝试了一个插件。它有一个设置页面,我需要在其中选择我想要显示插件内容的页面。我选择了我的一个页面-mywebsite。并测试了插件的工作原理。然后我决定删除这个插件。现在如果我打开url我的网站。com/page1/-我被重定向到主页。我尝试手动更改此页面的URL,效果很好。但是我怎样才能得到我的网站。com/第1页/要使用?