【发布时间】:2010-12-27 08:29:03
【问题描述】:
我之前发过这个
301 Redirect of Static HTML to Dynamic PHP Page
但是有一个新想法,我想知道是否有什么问题我不应该这样做......
如果有人试图访问我们网站上的死页,例如:
(域)/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
这给了我一个单一的点来输入我在谷歌网站管理员工具中看到的所有链接,这些链接在博客条目等中,现在已经死了。
谢谢
【问题讨论】:
-
如果您已经知道重定向规则存在,为什么不把它们放在 .htaccess 中?您不希望浏览器 404ing... 只需将其更改为 301。