3

我想将视图目录中的一些脚本设置为默认页面,例如 \application\views\index.php 并从应用程序的根目录中删除 index.php 文件。是否可以?(我试图将 config['index_page'] 的值更改为我想要的值,但它给了我找不到页面的错误)。

或者也许 codeigniter 有如此严格的项目结构,我不能做这样的改变?

4

2 回答 2

2

您不能从根目录中删除 index.php 文件,而是可以从 url 中删除 index.php 文件。

您必须先定义默认控制器,然后执行以下步骤

将 .htaccess 文件与 index.php 文件一起放在应用程序根目录中。(检查 htaccess 扩展是否正确,Bz htaccess.txt 对我不起作用。)

并将以下规则添加到 .htaccess 文件中,

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

然后在您的 application/config/config.php 文件中找到以下行

$config['index_page'] = 'index.php';

将变量设置为空,如下所示。

$config['index_page'] = '';

就是这样,它对我有用。

如果它不起作用,请尝试用这些参数('AUTO'、'PATH_INFO'、'QUERY_STRING'、'REQUEST_URI'和'ORIG_PATH_INFO')一一替换以下变量

$config['uri_protocol'] = 'AUTO';
于 2013-03-18T13:21:03.163 回答
1
$config['index_page'] = '';

会成功的

从现在开始,如果您访问您的网站,例如:

http://mypage.com

默认控制器将被调用

您可以在 application/config 文件夹中的 routes.php 文件中更改它

像:

$route['default_controller'] = "views/index";

顺便提一句。你在(应用程序/控制器)中的views.php控制器应该看起来像这样:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Views extends CI_Controller {

    public function index()
    {

        $data = "Text from controller's index method";
        $this->load->view('myview', $data);

    }

}

而你的myview.php在(应用程序/视图):

<?php echo $data; ?>
于 2013-03-18T12:44:23.787 回答