程序看起来没什么问题。
你有写路由规则吗?你的默认控制器是哪个?
routes.php里面只留了两条:
$route['default_controller'] = "login";
$route['scaffolding_trigger'] = "";
其他的没做任何修改。
最诡异的有两点:
1.本地机win+appache一切正常。
2.同一台服务器用CI 1.7.3,使用相同的配置和controllers,一切正常。(构造函数继承已经替换)。
你把 login 当作默认控制器啦?我觉得这样做不太好,虽然和这个问题无关。
这个看起来就是 PATH_INFO 的问题,CI 找不到 PATH_INFO,就认为 PATH_INFO 为空,然后就自动转到默认控制器。
你改下 config.php 里的 $config['uri_protocol'];
改成 PATH_INFO,应该能解决问题。如果不行再试试其他值。 Hex 发表于 2011-8-16 13:38 static/image/common/back.gif
你把 login 当作默认控制器啦?我觉得这样做不太好,虽然和这个问题无关。
这个看起来就是 PATH_INFO 的问 ...
好的我去试试看。
本来用老版本已经能用了。但是有个莫名的问题总是烦躁的。
login这个好办,运行起来之后优化一下名字。 Hex 发表于 2011-8-16 13:38 static/image/common/back.gif
你把 login 当作默认控制器啦?我觉得这样做不太好,虽然和这个问题无关。
这个看起来就是 PATH_INFO 的问 ...
汇报一下最新进展:
protocal试验到最后一个值ORIG_PATH_INFO的时候终于可用了。
但是感觉相应速度似乎明显慢了不少,也许是错觉?
多谢hex老大。
不过还是没明白AUTO怎么就不行。。HEX可否给总结或者点评一下? bogy 发表于 2011-8-16 14:11 static/image/common/back.gif
汇报一下最新进展:
protocal试验到最后一个值ORIG_PATH_INFO的时候终于可用了。
但是感觉相应速度似乎明 ...
这个就和 apache 的编译或者配置有关,说白了就是 apache 提供的是 ORIG_PATH_INFO 而没有提供 PATH_INFO。
而 AUTO 还没有达到这么智能,所以没有取 ORIG,而是还是取的 PATH_INFO,就造成错误了。
具体你可以看下 CI 这部分的源码,在 Router.php 中。 Hex 发表于 2011-8-16 14:43 static/image/common/back.gif
这个就和 apache 的编译或者配置有关,说白了就是 apache 提供的是 ORIG_PATH_INFO 而没有提供 PATH_INFO ...
好,我抽个时间慢慢仔细读一下。
不过这说明2.0的解析算法和1.7发生变化了。
另外想请hex评价一下这个帖子:http://www.360doc.com/content/11/0320/21/6524307_102997671.shtml
作者分析了CI加载流程和结构,说控制器部分写的很烂。
bogy 发表于 2011-8-16 15:11 static/image/common/back.gif
好,我抽个时间慢慢仔细读一下。
不过这说明2.0的解析算法和1.7发生变化了。
这个之前是廖老大写的吧。。。都好几年前的文章了。
首先,这个是 CI 很老版本的文章。另外,这个文章的作者是另一个框架的作者,其中或多或少存在不客观的情况。
再有,CI 也不是完美的,我们要取其精华去其糟泊。
页:
1
[2]