隐藏入口文件index.php后出现的问题
时间:2011-03-11
来源:互联网
配置环境:apache2.2(已开启rewrite)
thinkPHP/lib/Think/Util/Dispatcher.class.php(line 109):
复制代码
开启pathinfo模式并隐藏在url中index.php后(项目目录下放置配置好的.htaccess文件),在 IndexAction.class.php中定义的方法只有index能正常访问(仅限于不带参数),其他均出现无法加载相应模块的错误信息,究其原因,与$_SERVER['PATH_INFO']获取的字符串丢失有关,比如当前访问:http://example.com/index/index /p/2/,$_SERVER['PATH_INFO']本应获取到index/index/p/2,而实际只获取了index/p/2,导致本应该访问的是IndexAction下的index方法,却访问到了IndexAction下的p方法。而通过http://example.com /index.php/index/index/p/2方法访问则不会出现问题。
注:以上问题仅存在于在IndexAction中定义了多个方法才会出现,AAction、BAction、CAction……均正常
thinkPHP/lib/Think/Util/Dispatcher.class.php(line 109):
- private static function parsePathInfo()
- {
- $pathInfo = array();
- if(C('URL_PATHINFO_MODEL')==2){
- $paths = explode(C('URL_PATHINFO_DEPR'),trim($_SERVER['PATH_INFO'],'/'));
- echo $_SERVER['PATH_INFO'];
- dump($paths);exit;
- $groupApp = C('APP_GROUP_LIST');
- if ($groupApp) {
- $arr = array_map('strtolower',explode(',',$groupApp));
- $pathInfo[C('VAR_GROUP')] = in_array(strtolower($paths[0]),$arr)? array_shift($paths) : '';
- }
注:以上问题仅存在于在IndexAction中定义了多个方法才会出现,AAction、BAction、CAction……均正常
作者: keluo 发布时间: 2011-03-11
同样发现该问题,是apache 2.2的rewrite_mod导致的问题,因为环境变量
$_SERVER['PATH_INFO'],希望官方能够给出解决方案,谢谢。
$_SERVER['PATH_INFO'],希望官方能够给出解决方案,谢谢。
作者: tojeff 发布时间: 2011-05-21
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28