【问题标题】:CodeIgniter redirect not working on a real ServerCodeIgniter 重定向在真实服务器上不起作用
【发布时间】:2013-06-17 08:13:40
【问题描述】:

我在使用 CI 2.1.3 重定向功能时遇到问题。

每次我调用重定向时,它都会显示一个空白页面。事实上,它在我的本地主机上运行良好,问题只是出现在我的真实服务器上(安装了 CentOS 5)。

这就是我调用重定向的方式:

redirect('frontend/article/index');

or

redirect(base_url('articles.html'));

我确实在 config/routes.php 中添加了一条路由

$route['articles.html'] = 'frontend/article/index';

with : 前端是模块,文章是控制器,索引是动作(我用的是wiredesignz's HMVC module扩展)

我该如何解决?这里有什么问题?

提前致谢!

更新

我通过调用替换了 CI 重定向功能:

header("位置:http://example.com");

但它也没有用。

所以我创建了一个名为 info.php 的文件并将其上传到我的服务器。内容如下:

<?php
phpinfo();
?>

当我在地址栏中输入:http://example.com/info.php 时,它显示为如图所示。

为什么会有一个“>”字符?是导致重定向不起作用的问题吗?

【问题讨论】:

  • 在重定向时无需使用base_url。当您使用redirect 时,它会自动附加基本网址。
  • @tomexsans:感谢您的回复。但即使我调用 redirect('frontend/article/index') 也不起作用。
  • 打开服务器上的错误报告,或尝试将以下内容放在 index.php 的顶部。 error_reporting(E_ALL | E_WARNING | E_NOTICE);ini_set('display_errors', TRUE); 还要确保在调用redirect() 之前没有任何输出(echo、print_r、print、dump 等)。您还应该检查您的文件底部是否没有任何空白,众所周知,当移动到不同的环境时会导致问题。
  • @Jeemusu:感谢您的回复。我的助手末尾的空间导致了问题。请回答问题,我会将您的回答标记为已接受。再次感谢您!
  • 太好了,请注意空格不会导致问题。

标签: codeigniter redirect codeigniter-2 hmvc


【解决方案1】:

首先,确保启用了错误报告,或者尝试将以下内容放在 index.php 的顶部。

error_reporting(E_ALL | E_WARNING | E_NOTICE);
ini_set('display_errors', TRUE);

如果这没有为您指明正确的方向,请确保在调用 redirect() 方法之前没有任何输出 echoprint_rprintdump 等。

迁移到新环境时的另一个常见原因或问题是空白。检查您的文件底部是否没有任何空格。

【讨论】:

    【解决方案2】:

    如果您将 config.php 中的 .html 定义为文件 ext。你不需要用它来后缀路由。

    $route['articles'] //instead of $route['articles.html']
    

    您还需要从不需要的重定向 cos 中删除 base_url()。

    redirect('articles'); //should sort it
    

    希望这能解决你的问题。

    编辑

    如果在尝试进行这些更改后仍然无法正常工作,则很可能是控制器存在问题。如果是这种情况,您可能需要在 index.php 文件中打开错误报告以找出问题发生的确切位置。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-20
      • 1970-01-01
      • 2023-03-22
      • 1970-01-01
      • 1970-01-01
      • 2015-02-17
      • 2016-03-20
      • 2019-12-15
      相关资源
      最近更新 更多