You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CodeIgniter路由无法正常工作,静态页面无法显示求助

排查CodeIgniter静态页面404问题的几个关键点

别急,刚上手CodeIgniter踩路由和重写的坑太正常了!结合你给出的配置,我帮你梳理几个最可能出问题的地方:

1. 缺少URL重写的.htaccess文件(最常见原因)

你已经把$config['index_page'] = '';,这意味着要去掉URL里的index.php,但WAMP默认不会自动处理这个,必须添加.htaccess文件到项目根目录(和application、system文件夹同级),内容如下:

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

添加后,再尝试访问http://mysite/pages,如果之前是因为重写问题导致的404,现在应该能正常加载了。

2. 路由规则不匹配动态页面参数

你的Pages控制器的index方法接受可选参数$page,但目前的路由$route['pages'] ='pages/index';只能匹配/pages这个固定URL。如果之后想访问比如/pages/about这类页面,需要补充路由规则:

$route['pages/(:any)'] = 'pages/index/$1';

这条规则会把URL中pages/后面的内容作为参数传给index方法的$page变量,这样就能动态加载对应的视图文件了。

3. 控制器文件名和类名的大小写规范

CodeIgniter对控制器文件名有规范:文件名必须首字母大写,比如你的控制器类是Pages,对应的文件必须命名为Pages.php(而不是pages.php),放在application/controllers/目录下。虽然Windows系统(WAMP)对大小写不敏感,但严格遵循规范能避免后续部署到Linux服务器时出问题。

4. 视图文件路径的拼写检查

再确认下你的视图文件路径是否完全正确:application/views/pages/index.php必须存在,文件名的拼写(包括大小写)要和控制器里调用的一致。比如如果视图文件是Index.php(大写I),在Windows下可能能加载,但最好统一用小写文件名避免隐患。

快速测试方法

如果还不确定问题在哪,可以先直接访问带index.php的URL:http://mysite/index.php/pages。如果这个能正常显示,那肯定是.htaccess的问题;如果还是404,再检查控制器文件名和视图路径。

内容的提问来源于stack exchange,提问作者Tim C

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 06:37:34