这不起作用:
<?php
header('Location: www.mysite.com/index.php?foo=bar&var=abc');
?>
我最终得到了www.mysite.com/index.php?foo=bar我认为HTML可能会试图将&amp; var解释为一个角色。传递初始变量(在?之后)但后面的所有变量都不是(在&amp;之后)。
答案 0 :(得分:2)
if( isset($_SERVER['HTTPS'] ) ) {
header('Location: https://'.$_SERVER['SERVER_NAME'].'/index.php?'.$_SERVER['QUERY_STRING']);
}
else{
header('Location: http://'.$_SERVER['SERVER_NAME'].'/index.php?'.$_SERVER['QUERY_STRING']);
}
使用htmlspecialchars来阻止html注入
答案 1 :(得分:0)
我正在测试这个案例:
<?php if (isset($_GET['foo']) ) { echo '<pre>'; print_r($_GET); echo '</pre>'; exit(); } $fp='http://server/header.php?foo=bar&var=abc'; header("Location: ".$fp); exit(); ?>
我致电地址:http://server/header.php 并且重定向适用于' http://server/header.php?foo = bar&amp; var = abc '并且_GET已完成:
Array ( [foo] => bar [var] => abc )
注意:
答案 2 :(得分:0)
将index.php重定向到hompage。同样可以用于其他任何页面重定向。
$url = str_replace('/index.php', '/', $_SERVER['REQUEST_URI']);
header('Location: '. $url, true,302);
exit();