3

我有这个关于 Codeigniter 的问题,不幸的是,这个网站上关于这个问题的其他帖子对我没有帮助,或者我没有很好地应用它。

编辑* 添加截图:

在此处输入图像描述

在此处输入图像描述

我的目录结构:

  • 调度程序(主文件夹)
    • 系统
      • 应用
        • 配置(文件夹)
        • 控制器(文件夹)
          • BS.php
    • 和其他文件夹和文件
    • 索引.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.";
 }

路由.php

$route['default_controller'] = "BS";
$route['scaffolding_trigger'] = "";

索引.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";

现在做了几天,仍然没有一个过程给出。很高兴有任何帮助。

4

4 回答 4

6

我终于想通了,如上我的问题所示,还记得目录结构吗?

在 Controller 文件夹中,我有这个 BS.php 文件。然后,如果我没记错的话,那就是文件的大小写敏感问题。这可能是由于域不支持文件名中的大写字母,我在本网站其他问题的一些答案中读到了它。

简而言之,我将BS.file制作成了bs.file。它起作用了。

编辑

此外,在routes.php中,我将 BS 更改为 bs。

于 2013-01-09T07:27:40.627 回答
0

我看到你已经发布了 index.php 的代码。我认为您不需要,因为您应该尽量不要在那里编辑任何内容。

您的根文件夹中有 .htaccess 吗?

每当我开发任何 CI 应用程序时,我总是将这个 .htaccess 文件放在手边。

http://pastebin.com/nTsThZHv

于 2013-01-08T03:37:10.813 回答
0

您应该从 index.php 文件中删除代码并在您的 Web 应用程序的根目录中创建 .htaccess 文件。(即应用程序,系统文件夹存在)。

这是我的重复答案: Codeigniter 与 localhost (XAMPP) 中的路径有关的问题

请在项目文件夹中创建 .htaccess 文件并写入:

<IfModule mod_rewrite.c>
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# Rewrite all other URLs to index.php/URL
RewriteRule ^(.*)$ index.php?url=$1 [PT,L] 

</IfModule>
<IfModule !mod_rewrite.c>
 ErrorDocument 404 index.php
</IfModule>

您不需要在配置文件的 base_url 中定义:

$config['base_url'] = ''; // blank it.
于 2013-01-08T04:51:19.123 回答
0

就我而言,这是控制器的案例问题,但与@Brain 的答案略有不同。这是因为我使用了一个名为“AxxxxBxxx.php”的默认控制器。我总是收到 404 错误。在我将其更改为“Axxxxxxxxxxx.php”并更改相应的类名之后。有用。

顺便说一句,我使用 codeigniter 3.0。希望能帮助到你!

于 2015-06-03T11:35:05.433 回答