【问题标题】:PHP 301 Redirect IdeaPHP 301 重定向思路
【发布时间】: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。

标签: php http-status-code-301


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-30
    • 1970-01-01
    • 1970-01-01
    • 2011-07-13
    • 2014-10-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多