【问题标题】:Codeigniter does not redirect properly in remote serverCodeigniter 无法在远程服务器中正确重定向
【发布时间】:2012-01-27 06:20:47
【问题描述】:

我在这里需要帮助。

我想问一下为什么我的 CI 没有在远程服务器中正确重定向? 我的本地主机中的所有内容都可以正常运行。

例如:

class Login extends CI_Controller {
    function index() {
        //bla bla bla
        redirect('dashboard','refresh');
    }
 }

登录成功后,我得到了url:http://www.test.com/%20//www.test.com/dashboard 而不是:http://www.test.com/dashboard

这是一个有点愚蠢的问题,我到处搜索,但没有相关答案,所以任何帮助将不胜感激。

【问题讨论】:

  • 您需要检查实际发送的标头(使用wget -S 或Firebug 等)。它所做的可能是发送一个headers("Refresh: 0; url=' //www.test.com/dashboard'"); 标头,或者在方案http: 前缀之后有一个空格。向我们展示redirect() 的实现。

标签: php .htaccess codeigniter redirect uri


【解决方案1】:

嗯,好的,查了一下。这是来自 CodeIgniter (1.7.1) 的 redirect() 实现:

             case 'refresh'  : header("Refresh:0;url=".$uri);

不漂亮,但不应该导致您描述的问题。不知何故,一个空间仍然溜进来。我怀疑它是一个非打印的 Unicode 空间变体,你的浏览器后来将它翻译成一个正常的空间。 -- 也可能是那个帮助函数中提到的$uri=site_url($uri) 调用,但没有查到。那么可能是站点配置错误。

另一种方法是尝试正常的location 重定向。

    redirect('dashboard');

【讨论】:

  • 哇哇哇,你真是太棒了!你刚刚挽救了我的生命!非常感谢!
猜你喜欢
  • 1970-01-01
  • 2019-08-26
  • 2021-05-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-07
  • 2021-11-02
相关资源
最近更新 更多