Codeigniter redirect()在Opera浏览器中不起作用

时间:2013-01-11 09:35:58

标签: php codeigniter redirect header opera

我基本上做的是:

else
{
    // redirect to home/login
    redirect('home/login');
    return null;
}

它似乎适用于所有主流浏览器,但不适用于Opera。我找不到这个问题。也许你们知道,我怎么能解决这个问题?提前谢谢。

Soltuion 重新安装并重置为默认设置修复了错误。好像我有一些奇怪的重定向配置。

6 个答案:

答案 0 :(得分:0)

尝试使用PHP标头:

header("Location:your/site/url/home/login");
exit;

答案 1 :(得分:0)

CodeIgniter的redirect(..)方法支持两种重定向模式(location发送回Location:标头,refresh输出刷新标记。)

默认情况下(您正在使用的那个)它使用location,它应该可以正常工作,但仅限于之前未向浏览器输出任何内容的情况(忽略输出缓冲)。

如果所有其他方法都失败了,您可以尝试使用refresh模式,如下所示:

redirect('/home/login', 'refresh');

答案 2 :(得分:0)

我认为它应该通过提供完整的URL来工作 试试这个:

else
{
    // redirect to home/login
    redirect(base_url().'home/login');
    exit();
}

答案 3 :(得分:0)

PHP中的位置标头功能需要使用完整的绝对URL。与相关人合作的浏览器不遵守规范,他们只是做他们所做的事情,因为他们对他们认为你想要实现的目标做出假设。

将网址更改为绝对网址,看看是否有诀窍。

答案 4 :(得分:0)

解决方案

重新安装并重置为默认设置修复了该错误。好像我有一些奇怪的重定向配置。

答案 5 :(得分:0)

使用服务器端重定向。对于php,它将如下所示:

<?php
/* This will give an error. 
 * Note the output above, which is before the header() call */

header('Location: http://www.example.com/');
exit;
?>