我目前更新了一个网站,并对其进行了许多改进。旧站点运行了3个不同的系统,在webroot中有wordpress(和其他系统)。我已经将wordpress移动到了一个子目录(wordpress),并且我还更新了我的博客文章,以blog/作为前缀。页面和首页没有以blog/作为前缀。
我遇到的问题是,我想优雅地告诉谷歌和其他搜索引擎,这些帖子现在的前缀是/blog/。
在我意识到wordpress抛出404头之前,我在404页面中使用了以下代码。显然,这不是实现此修复的正确方法。
// Check if old site URL and redirect if so
if (substr($s, 0, 8) != \'reviews/\') {
if (substr($s, 0, 5) != \'blog/\' && substr($s, 0, 10) != \'wordpress/\' ) {
// Force our 301 redirect so we can keep the new URI: /blog/
header("HTTP/1.1 301 Moved Permanently");
header("Location: /blog/{$s}");
exit();
}
}
我需要做的是找出wordpress何时知道这是一个404,看看它是否与我的检查相匹配(目前在上面的代码片段中),如果匹配发生,则强制301重定向以更新爬虫程序。
我不确定init上是否有这些信息,因为这是我要测试的下一步。
我试着玩template_redirect
和redirect_canonical
但它们似乎不是正确的附加方法。
在此方面的任何帮助都将不胜感激。我仍在努力寻找解决方案,并将在找到解决方案后发回。
提前谢谢。