Codeigniter,路由在生产服务器上不起作用

Nic*_*iwi 6 php .htaccess codeigniter

我有3台服务器,一台localhost apache服务器,一台测试远程服务器和生产实时服务器.

我在所有3个上都安装了相同的codeigniter和站点设置,并且在localhost和测试服务器上没有'index.php'的路由工作100%.但是,在生产服务器上,无论URL显示只显示主页(通过默认控制器),似乎除了默认路由规则外,所有路由规则都被忽略.

但是,如果在URL中添加了index.php,那么它将按预期工作.

例如,如果生产站点上的URL为:'www.mysite.com/information',则加载的内容将构成默认控制器.

但是当生产站点上的URL为:'www.mysite.com/index.php/information'时,加载的内容来自'信息'控制器.

这是我的htacess文件的内容:http://pastebin.com/cDaZVJ8A

这是我的路由配置文件:http://pastebin.com/7Ewc2bwN

我的$ config ['index_page']设置为空.

我真的不知道为什么它不起作用,在codeigniter本身的所有服务器上的相同设置,并且mod_rewrite IS在生产服务器上工作.

我不知道该怎么办,我怎么能找出什么是错的?

Jee*_*usu 7

当人们将codeigniter安装从一个环境移动到另一个环境时,这是一个非常常见的问题.我不知道它为什么会出现,可能是服务器操作系统或apache设置的差异,但解决方案通常是?在.htaccess文件中为index.php 添加一个问号到RewriteRule.

旧:

RewriteRule ^(.*)$ index.php/$1 [L]
Run Code Online (Sandbox Code Playgroud)

新:

RewriteRule ^(.*)$ index.php?/$1 [L]
Run Code Online (Sandbox Code Playgroud)