标题位置不会立即重定向,寻找替代方案

时间:2012-01-05 04:40:45

标签: php redirect header location

我正在写一个脚本,最后我有一个重定向标题。

如果出现特定情况,我会在中间添加一个重定向标题。

我很惊讶地注意到最后一个标题(“位置:http // mydomain.com”)是触发的标题。我认为标题会自动从页面“跳转”,但它似乎只是将它保存在内存中并首先遍历整个页面。

关于“切割”流程和更改页面的“正确”方法的任何想法都是?

<?php
$specific_condition=true;
// I wanted this to be the end
if($specific_condition) header("Location: http://google.com/"); 
// But it still triggers following redirect
header("Location: http://bing.com/");
?>

2 个答案:

答案 0 :(得分:3)

始终exit;标题后立即致电Location

if($specific_condition) {
    header("Location: http://google.com/"); 
    exit;
}

header()函数本身只是收集要发送给客户端的标头。因此,不应该在任何特定标题之后停止执行,例如Location。但只要在之后做某事就没有意义,你决定重定向用户 - exit被使用

答案 1 :(得分:0)

您可以使用变量来保存位置地址

这样,您也可以在设置新位置后执行一些代码。

$location = 'http://bing.com/';
$specific_condition=true;   
if($specific_condition) $location = 'http://google.com';

//do something else
header("Location: " . $location);