我有以下代码:
<?php
if($_SERVER['REQUEST_URI'] == 'http://example.com/knowthecode')
{
header("Location: http://example.org/knowthecode"); exit;
}
这不按预期工作。你能帮忙吗?
答案 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;
}