我有一个基本的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自动检测前缀以解析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/';
根据为该设置提供的文档。
答案 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']
。
配置完成后,它应解决您的问题。