2009-12-16 100 views
0

我张贴这早些时候PHP 301重定向理念

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 

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

谢谢

+1

好的..............而且? – 2009-12-16 18:07:30

+1

如果你已经知道它们存在,你为什么不把重定向规则放在.htaccess中?你不希望浏览器404 ...只是改成301。 – 2009-12-16 18:15:39

回答

1

嗯,是的。 301,并伴有Location标题,是对您可以肯定识别为移动的请求的正确响应。