发送标头后重定向用户

2022-08-30 18:52:45

我知道,只要数据已发送到浏览器,那么标题就无法修改。

有没有办法(使用PHP)我可以执行重定向以将用户带到另一个页面(显然不使用标题)

如果是这样,你能给我指出一些文档吗?


答案 1

决定编写我自己的php函数,实现javascript重定向。请参阅下面的代码。

function redirect($url)
{
    $string = '<script type="text/javascript">';
    $string .= 'window.location = "' . $url . '"';
    $string .= '</script>';

    echo $string;
}

答案 2

我假设输出缓冲不是一个选项,因为您提到数据已发送。使用元重定向,或输出处理此问题的JavaScript。

前者可以通过在本节中添加以下内容来实现<head>

<meta http-equiv="refresh" content="0; url=http://example.com/">

对于后者,编写如下内容可能会有所帮助:

<script type="text/javascript">
    window.location = "http://example.com/";
</script>

http://example.com/ 替换为目标网址。请注意,如果确实发送了某些数据,后者可能会更灵活地实现。

需要注意的是:这两种方法都可以在客户端被阻止,但从技术上讲,301和302重定向也是如此。


推荐