根据条件重定向

时间:2013-01-16 22:06:10

标签: php

我有以下代码:

<?php 
if($_SERVER['REQUEST_URI'] == 'http://example.com/knowthecode')
{
    header("Location: http://example.org/knowthecode"); exit;
}

这不按预期工作。你能帮忙吗?

3 个答案:

答案 0 :(得分:1)

$_SERVER['REQUEST_URI']的值不包含整个网址(如评论中所示)。

虽然$_SERVER中有其他元素可能最终能够满足您的需求,但您最好使用parse_url()之类的函数然后比较各个部分。

答案 1 :(得分:1)

$_SERVER["REQUEST_URI"]不包含网站的主机 - 对于http://www.mysite.com/page.php?key=value这样的网页,$_SERVER["REQUEST_URI"]将是`/page.php?key=value"

尝试查看$_SERVER["HTTP_HOST"]以便在主机上进行搜索。

一个好的方法是添加:

echo "<pre>";
var_dump($_SERVER);
echo "</pre>";
die();

这将有助于您了解服务器变量是什么以及它们意味着什么

答案 2 :(得分:0)

查看http://php.net/manual/en/reserved.variables.server.php

REQUEST_URI是发送到您的服务器(域)的请求

例如在http://www.domain.com/index.php中,REQUEST_URI是/index.php

你能做的是:

if($_SERVER['REQUEST_URI'] == '/index.php')
{
    header("Location: http://www.google.com"); 
    exit;

}