5

我对 CI 比较陌生,我想知道是否有人知道如何设置 CI 的默认页面。我刚刚将文件从本地服务器传输到远程服务器,但遇到了一些问题。首先,我认为重要的是要注意我编辑了 .htaccess 文件,以便从 URL 中删除 index.php。

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

其次,在我的config.php文件中,我有:

$config['base_url'] = '';
$config['index_page'] = 'sportstream';

sportstream是在application/controllers/文件夹中找到的控制器的名称。根据我不使用 CI(或任何其他框架)的经验,远程服务器上文件夹index.php内的public_html文件是在访问站点时默认加载的文件。但是,使用 CI 时,每当我尝试访问我的域名时,都会返回 404 错误。我尝试设置为base_urlhttp://www.mysite.com没有任何运气。

这里有谁知道如何制作,以便在访问http://www.mysite.com时加载http://www.mysite.com/sportstream ?

4

2 回答 2

3

您需要RewriteBase.htaccess文件中添加一个:

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

注意:我也在?之后添加了一个index.php

我还将以下内容设置为空字符串(在您尝试了上述内容之后):

$config['base_url'] = '';
$config['index_page'] = '';

最后,在您的routes.php文件中:

$route['default_controller'] = 'sportstream';

更新

application/config/database.php您需要更改数据库驱动程序。在您的本地主机上,MySQLi 是数据库驱动程序集。但是,在您的远程服务器上,未安装 MySQLi,因此将其更改为 MySQL 应该可以解决问题。

//old - works on local server
$db['default']['dbdriver'] = 'mysqli';

//new - works on remote server
$db['default']['dbdriver'] = 'mysql';

出于某种原因,Codeigniter 只是“中断”并显示没有错误的空白屏幕。

于 2013-08-21T01:01:39.733 回答
0

您必须设置默认控制器,$route['default_controller'] ="sportstream";它位于 aplication/config/route.php , So when visitinghttp:the //www.mysite.com/ sportstream` 控制器将默认加载。

检查用户指南中的默认控制器

切换回$config['index_page'] = '';

如果您重命名了,index.php那么您必须输入index_page名称,config 否则您可以将其保留为空白。

推荐的 Codeigniter 入门指南: http: //net.tutsplus.com/tutorials/php/codeigniter-basics/

于 2013-08-15T01:25:03.480 回答