【发布时间】:2015-12-30 22:05:01
【问题描述】:
我通常不会在网络上发布消息寻求帮助,但我觉得我已经尝试了所有方法并且我被卡住了。
我想将 CodeIgniter 从 2.2 版升级到 3.0.3 版(我也尝试过 v3.0.2),并遵循了相应的 guide on codeigniter.com。但是现在,无论 url 是什么,都只加载了默认控制器。
我在网上搜索,发现它可能来自:
- htaccess
- 应用程序/配置/配置文件
- 应用程序/配置/路由文件
- 文件名(控制器、模型...)的新 Ucfirst 规则
但我还是没有办法……
- “应用程序/控制器”中的文件都是Ucfirst。
- 之前一切正常(使用 2.2 版),因此应正确配置 WAMP(启用 mod_rewrite 等...)。此外,我已经尝试并成功加载了 CodeIgniter 3 的干净实例。
- 模型、控制器和视图已正确加载,我可以更改我的默认控制器,它会加载正确的视图(请求由控制器和模型完成)。但它只加载默认控制器,无论 url 是什么(在浏览器中)。即使它不存在,我也从来没有 404 页面。除非我指定了不正确的“default_controller”(在文件“routes.php”中)。
一定是路由问题...
这是我做过的一些测试: Table of tests
这是我的htaccess文件(我在网上也试过其他的,结果是一样的):
重写引擎开启 #检查用户是否试图访问一个有效的文件, RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d #启用对图像和css文件夹以及robots.txt文件的访问 RewriteCond $1 !^(index\.php|public|images|robots\.txt|css) 重写规则 ^(.*)$ index.php/$1 [L]这是我的“应用程序/配置/路由”文件:
$route['default_controller'] = '仪表板'; $route['404_override'] = 'auth/e404'; $route['translate_uri_dashes'] = 假;任何帮助将不胜感激:-)
谢谢!
解决方案
$config['enable_query_strings'] 在文件“application/config/config.php”中设置为“TRUE”。将其设置为“FALSE”解决了这个问题。如此简单...
【问题讨论】:
标签: php .htaccess codeigniter routing wamp