子目录中的编码器-为什么解析控制器/类/函数不工作


Codeigniter in subdirectory - why does resolving controller/class/function not work?

我有一个基本的代码编写器设置,不能让它运行。我以为我已经理解了它的工作原理:

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/';

根据文档给出的设置

不能指望Codeigniter做RFC符合URL处理。相反,要解决这个问题,必须知道Codeigniter不能与所有url一起工作,在这种情况下,在基本url中不可能有空格字符%20

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

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

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

通过设置配置变量$config['base_url'],在application/config/config.php中定义base_url