我有一个基本的代码编写器设置,不能让它运行。我以为我已经理解了它的工作原理:
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自动检测前缀以解析class
和function
吗?
我是否需要设置一个基本路径?
具体的例子
我的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
。