仅CodeIgniter索引页面正在运行

时间:2012-10-14 07:46:44

标签: codeigniter

我最近开始使用codeIgniter而且我遇到了问题。

我的view文件夹中有两个文件

  1. 的index.php
  2. profile.php
  3. 当我转到网址http://localhost/php/ci/index.php/时,它会显示我的index.php页面,一切都很好。

    但是当我去http://localhost/php/ci/profile.php/时,它说

    The requested url was not found on server

    为什么会发生这个问题?

    我的控制器文件名是:

    1. home_control.php
    2. profile_control.php
    3. home_control将与index.php进行交互,profile_control将与profile.php进行交互。

4 个答案:

答案 0 :(得分:0)

这是错误的方法,请阅读有关如何设置.htaccess文件以及路由如何工作的手册。您不需要有多个index.php类文件,只应该是一个。

Here is the link你应该从哪里开始阅读。

答案 1 :(得分:0)

你的MVC理解存在根本缺陷。位于文档根目录中的index.php文件(即您的www目录)实际上负责在每个请求上启动CodeIgniter。这是您在网址栏中看到的index.php

您将index.phpindex.php文件夹内部 编造的views混淆了。您永远不可能在views文件夹中创建文件,并且能够使用URL栏立即访问它。你必须经过一个控制器。

如果您访问http://localhost/php/ci/index.php/profile_controlcontrollers/profile_control.php包含::

<?php
class Profile_control extends CI_Controller{
    function __construct(){
        parent::__construct();
    }
    function index(){
        $this->load->view('profile')
    }
}

您将能够看到views/profile.php

中的内容

为减少混淆,it is essential that you read this before going forward

答案 2 :(得分:0)

像对方说的那样。一切都通过index.php。但你实际上可以隐藏它,这样你就不必在网址中输入它,这不是很好的。

转到您的应用程序/ config / config.php并找到类似以下内容的内容:

/*
|--------------------------------------------------------------------------
| Index File
|--------------------------------------------------------------------------
|
| Typically this will be your index.php file, unless you've renamed it to
| something else. If you are using mod_rewrite to remove the page set this
| variable so that it is blank.
|
*/
$config['index_page'] = "index.php";

删除index.php。在.htaccess(你的index.php旁边)你需要添加这个如果我没有弄错:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

如果一切正常,您可以将您的个人资料控制器称为http://localhost/php/ci/profile_control。默认情况下,它会调用索引操作,因此请确保该控制器中有public function index。网址结构始终为http://url.com/*controller*/*action*/*extra params here*

如果您希望在控制器中调用其他操作(功能),例如public function profile(),则可以调用此网址http://localhost/php/ci/profile_control/profile

  

在第二个操作中,您使用 $ this-&gt; load-&gt; view('profile')指定其他视图文件。这将调用 view / profile.php 文件

你也可以像这样将值传递给那个动作 - &gt; http://localhost/php/ci/profile_control/profile/id/7

在您的个人资料操作中,您需要获取这些值,如下所示

public function profile($action, $value)
{
    //$action = the word id and $value = the number 7
}

答案 3 :(得分:0)

您可以使用以下代码在项目文件夹内但在应用程序文件夹外创建另一个.htaccess文件

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

我也遇到同样的问题,其中只有我的索引页有效,而它对我有用!