我基本上做的是:
else
{
// redirect to home/login
redirect('home/login');
return null;
}
它似乎适用于所有主流浏览器,但不适用于Opera。我找不到这个问题。也许你们知道,我怎么能解决这个问题?提前谢谢。
Soltuion 重新安装并重置为默认设置修复了错误。好像我有一些奇怪的重定向配置。
答案 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;
?>