Codeigniter在子目录中 - 为什么解析控制器/类/功能不起作用?

时间:2011-08-18 13:05:11

标签: php codeigniter url-routing

我有一个基本的codeigniter设置,无法让它运行。我以为我已经明白它的作用如下:

http://localhost/index.php/class/function

其中class指向控制器。

我遇到的问题是我的安装位于子文件夹中,如下所示:

http://localhost/path%20to%20ci/index.php/class/function

并且CI总是给我404,即使控制器类存在。

我已经深入研究了CI源代码,它向我展示了整个请求URI被视为输入:

path to ci/index.php/class/function

我是否需要配置任何内容以使CI自动检测前缀以解析classfunction

我可以甚至是否需要设置基本路径?

具体示例

我的CI路径可通过以下方式访问:

http://localhost/workspace/Limesurvey%20CI/index.php

工作控制器是:

http://localhost/workspace/Limesurvey%20CI/index.php/installer

application/config/config.php中的基本路径设置为:

$config['base_url'] = 'http://localhost/workspace/Limesurvey%20CI/';

根据为该设置提供的文档。

2 个答案:

答案 0 :(得分:6)

人们不能指望Codeigniter做符合RFC的URL处理。相反,为了解决这个问题,必须知道Codeigniter不能使用所有URL,在这种情况下,基本URL中不可能有空格字符%20

将安装移至另一个没有空格字符的路径解决了问题:

http://localhost/workspace/Limesurvey_CI/index.php/installer

此外,不需要更改$config['base_url']中的application/config/config.php。它可以保留默认值''(空字符串)。

答案 1 :(得分:0)

您可以通过设置配置变量base_url来定义application/config/config.php中的$config['base_url']

配置完成后,它应解决您的问题。