嘿伙计们,我正在尝试在标题中构建重定向脚本。 它包含一个名为$ redirect的变量,它等于0或1。
我想要做的是,如果变量等于1,则将用户重定向到指定页面。 这样可行。 我遇到的问题是,当它到达重定向的URL时,它会创建一个循环。 我尝试编写以下代码但它不起作用。我做错了什么?
<?php
$redirect = 1;
$host = $_SERVER['HTTP_HOST'];
$self = $_SERVER['PHP_SELF'];
$query = !empty($_SERVER['QUERY_STRING']) ? $_SERVER['QUERY_STRING'] : null;
$url = !empty($query) ? "http://$host$self?$query" : "http://$host$self";
$redirectURL = '/protest/cispa.php';
if ( $redirect === 1 ) {
if ( $url === $redirectURL ) {
die();
}
else {
header("Location: $redirectURL");
exit;
}}
?>
根据andrewsi的建议,我将代码更新为以下代码:
<?php
$redirect = 0;
$host = $_SERVER['HTTP_HOST'];
$self = $_SERVER['PHP_SELF'];
$query = !empty($_SERVER['QUERY_STRING']) ? $_SERVER['QUERY_STRING'] : null;
$url = $self;
$redirectURL = '/protest/cispa.php';
if ( $redirect === 1 ) {
if ( $url === $redirectURL ) {
}
else {
header("Location: $redirectURL");
exit;
}
}
?>
答案 0 :(得分:0)
$url = !empty($query) ? "http://$host$self?$query" : "http://$host$self";
$redirectURL = '/protest/cispa.php';
您的$ url包含完全限定的域名; redirectURL只是一条路径。两者永远不会平等。尝试设置:
$url = $self;
(如果我正确地阅读你的代码)
答案 1 :(得分:0)
您可以在重定向的查询字符串中粘贴一个标记。然后,如果存在该标志,则不要添加重定向。
离;
http://www.yoursite.com/redirectedto.php?red=1
现在,如果设置了红色,我就不会添加重定向。
利