1

ヘッダーにリダイレクト スクリプトを作成しようとしています。0 または 1 に等しい $redirect という変数が含まれています。

私がやりたいことは、変数が 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;
}
}
?>
4

2 に答える 2