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