CodeIgniter仅在公共服务器上找不到404

时间:2013-08-15 17:17:37

标签: codeigniter codeigniter-2

描述

我有一个网站“searchnwork.com”。它使用CodeIgniter。每个页面除了主页加载正常。

如果你去searchnwork.com,它会显示CI 404错误页面。

如果你去searchnwork.com/index.php/users,它会显示UserSignUpController页面,这很好。

如果我设置$route['404_override'] = 'UserSignUpController',我仍然会得到404。

我的本​​地服务器上的一切正常。


问题

为什么我为searchnwork.com获得了404,尽管有覆盖?

为什么我首先获得了searchnwork.com的404而不是我的默认控制器?


代码

$route['users'] = "UserSignUpController"; // This loads fine.
$route['default_controller'] = "UserSignUpController"; // This gives a 404...
$route['404_override'] = 'UserSignUpController'; // This doesn't redirect...

2 个答案:

答案 0 :(得分:1)

区分大小写的文件名。

在MAMP上,它似乎并不关心大写。当我上传到实际的Linux服务器时,CapitalizedFileNames开始失败,因为它只搜索小写文件名。我想你应该使用下划线。

奇怪的是它只能用于index.php。

答案 1 :(得分:0)

您需要在服务器根目录

上安装.htaccess
RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]

同时确保您的/application/config/config.php设置正确(这些可以留空,仍然可以正常使用)

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