描述
我有一个网站“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...
答案 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'] = '';