0

我之前发过这个

静态 HTML 到动态 PHP 页面的 301 重定向

但是有一个新想法,并且想知道是否有任何问题为什么我不应该这样做......

如果有人试图访问我们网站上的死页,例如:

(域)/somepage.html

现在存在于此处:

(域)/dynamic.php?id=1

它失败并转到自定义错误 404 页面 (/404.php)

如果我查看$_SERVER['REDIRECT_URL']变量,我可以看到他们试图去哪里。我的想法是在 404.php 页面的顶部添加一个包含来检查这个值,如果它在我要重定向的项目列表中,那么使用 PHP 来执行 301。

像这样的东西...

// -- php include at top of 404.php page

switch(trim($_SERVER['REDIRECT_URL'])){
   case "/oldpage.html" : $location = "/dynamic.php?id=1"; break;
   case "/oldpage2.html" : $location = "/dynamic.php?id=2"; break;  
}

if(isset($location) && trim($location) != ''){
   header ('HTTP/1.1 301 Moved Permanently');
   header ('Location: '.$location);
   exit(0);
}

// -- end of php include

这让我可以输入我在博客条目等中的谷歌网站管理员工具中看到的所有链接,这些链接现在已经失效。

谢谢

4

1 回答 1

1

嗯,是。带有Location标头的 301 是对您可以肯定地识别为正在移动的请求的正确响应。

于 2009-12-16T20:53:25.010 回答