当我在本地服务器上运行Codeigniter 3.0应用程序时,它工作正常 . 但是,当我将其上传到Bluehost时,它不起作用 .
Codeigniter本身正在工作,但我得到一个Codeingiter 404而不是Apache 404 - 页面得到样式等等 .
我认为问题与Codeigniter 3.0和Bluehost有关,因为我向BH上传了2个不同的应用程序 .
当我使用Codeigniter 2.x时,一切正常 .
从CodeIgniter 3.0开始,所有类文件名(库,驱动程序,控制器和模型)必须以 Ucfirst-like 方式命名,或者换句话说 - 它们必须以 capital letter 开头 .
控制器:
application/controllers/welcome.php 至 application/controllers/Welcome.php
application/controllers/welcome.php
application/controllers/Welcome.php
楷模:
application/models/misc_model.php 至 application/models/Misc_model.php
application/models/misc_model.php
application/models/Misc_model.php
资料来源:Classes file naming Conversion in CodeIgniter
请注意,这不会影响目录,配置文件,视图,帮助程序,挂钩和其他任何内容 - 它仅适用于类 . 您现在必须遵循一个简单的规则 - Ucfirst中的类名称和小写的其他所有内容 .
和 .htaccess 应该是
.htaccess
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L] </IfModule>
我希望以下.htaccess能为您服务:
RewriteEngine on RewriteCond $1 !^(index\.php|resources|robots\.txt) RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?/$1 [L,QSA]
2 回答
从CodeIgniter 3.0开始,所有类文件名(库,驱动程序,控制器和模型)必须以 Ucfirst-like 方式命名,或者换句话说 - 它们必须以 capital letter 开头 .
控制器:
application/controllers/welcome.php
至application/controllers/Welcome.php
楷模:
application/models/misc_model.php
至application/models/Misc_model.php
资料来源:Classes file naming Conversion in CodeIgniter
和
.htaccess
应该是我希望以下.htaccess能为您服务: