我想从views目录中设置一些脚本作为默认页面,例如\ application \ views \ index.php,并从应用程序的根目录中删除index.php文件。可能吗? (我试图将config ['index_page']的值更改为我想要的,但它给了我错误,找不到页面)。
或者codeigniter有如此严格的项目结构,我不能做这样的改变?
答案 0 :(得分:2)
您无法从根目录中删除index.php文件,而是可以从网址中删除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';
答案 1 :(得分: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; ?>