【发布时间】:2012-12-21 21:09:38
【问题描述】:
我有这个关于 Codeigniter 的问题,不幸的是,这个网站上关于这个问题的其他帖子对我没有帮助,或者我没有很好地应用它。
编辑* 添加屏幕截图:
我的目录结构:
- 调度程序(主文件夹)
-
系统
-
应用程序
- 配置(文件夹)
- 控制器(文件夹)
- BS.php
-
应用程序
- 以及其他文件夹和文件
- index.php
-
系统
正如标题所说,当我输入时
http://mysite.com/folder/index.php
它输出找不到页面 404。但是,当我输入 http://mysite.com/scheduler/index.php/BS 时,它显示“这是一个 BS 文件”,因为我使用下面的代码回应了它。
BS.php
function index($flag = NULL)
{
echo "This is a BS File.";
}
routes.php
$route['default_controller'] = "BS";
$route['scaffolding_trigger'] = "";
index.php
error_reporting(E_ALL);
$system_folder = "system";
$application_folder = "application";
if (strpos($system_folder, '/') === FALSE)
{
if (function_exists('realpath') AND @realpath(dirname(__FILE__)) !== FALSE)
{
$system_folder = realpath(dirname(__FILE__)).'/'.$system_folder;
}
}
else
{
// Swap directory separators to Unix style for consistency
$system_folder = str_replace("\\", "/", $system_folder);
}
define('EXT', '.php');
define('SELF', pathinfo(__FILE__, PATHINFO_BASENAME));
define('FCPATH', str_replace(SELF, '', __FILE__));
define('BASEPATH', $system_folder.'/');
if (is_dir($application_folder))
{
define('APPPATH', $application_folder.'/');
}
else
{
if ($application_folder == '')
{
$application_folder = 'application';
}
define('APPPATH', BASEPATH.$application_folder.'/');
}
require_once BASEPATH.'codeigniter/CodeIgniter'.EXT;
最后,我的 config.php
$config['base_url'] = "http://" . $_SERVER['HTTP_HOST']. "/scheduler/";
$config['secure_base_url'] = "https://" . $_SERVER['HTTP_HOST']. "/scheduler/";
$config['index_page'] = "index.php";
$config['uri_protocol'] = "REQUEST_URI";
现在做了几天,仍然没有一个过程给出。很高兴得到任何帮助。
【问题讨论】:
-
你需要 HTACCESS 从 URL 中删除 INDEX.PHP
-
它按预期工作。这里有什么问题?
-
我编辑了我的问题,请查看我的问题的最上方部分,您会看到我的问题的屏幕截图。
-
看起来肯定是个废话。你试过
$config['uri_protocol'] = 'AUTO';吗?此外,如果可能,请尝试升级到最新版本的 Codeigniter。看起来您仍在使用版本 1。 -
@itachi:我认为他用作示例的“folder/index.php”URL 不正确/错误 - 查看屏幕截图地址栏中的 URL,这应该可以澄清。哦,+1,因为韦斯利必须团结起来;)
标签: php codeigniter controller routes http-status-code-404