远程服务器上的 CodeIgniter 默认页面

标签 codeigniter

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

这里有人知道如何制作,以便访问时http://www.mysite.com那个http://www.mysite.com/sportstream会加载吗?

最佳答案

您需要添加一个 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 只是“中断”并显示没有错误的空白屏幕。

关于远程服务器上的 CodeIgniter 默认页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18244819/

相关文章:

php - 如何使用mysql获取所有行的列中的时间总和

javascript - parse_str 将下划线添加到索引并附加值

php - 您如何自定义/设置 codeigniter 错误的样式?

php - 如何在 CodeIgniter 的数据库事件记录中使 like() 方法不区分大小写?

html - 如何使用 JS 将 html 中的 div 内容放入和下载到 pdf 文件中?

jquery - ajax 无法在 Codeigniter 中工作

php - Codeigniter CORS 策略 : No 'Access-Control-Allow-Origin' error How to resolve?

php - 如何实现分层cms站点?

php - 如何使用 codeigniter 中另一个 Controller 传递的变量创建一个 Flexigrid?

php - 如何加速 codeigniter/php 分页,sql 查询