代码之家  ›  专栏  ›  技术社区  ›  Don

php 301重定向思想

  •  0
  • Don  · 技术社区  · 15 年前

    我早些时候发的这个

    301 Redirect of Static HTML to Dynamic PHP Page

    但是有一个新的想法,我想知道是否有什么问题,为什么我不应该这样做…

    如果有人试图进入我们网站的死页,比如:

    (域)/somepage.html

    现在存在于这里:

    (域)/dynamic.php?ID=1

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

    如果我看 $_SERVER['REDIRECT_URL'] 变量,我可以看到他们想去哪里。我的想法是在404.php页面的顶部添加一个include来检查这个值,如果它在我要重定向的项目列表中,那么使用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
    

    这给了我一个单一的点来输入我在谷歌网站管理员工具中看到的所有链接,这些工具都在博客条目中,等等,现在已经死了。

    谢谢

    1 回复  |  直到 15 年前
        1
  •  1
  •   troelskn    15 年前

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