隐藏入口文件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版激活秘钥/序列号/激活码推荐 附激活工具 office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具阅读:74 
-   如何安装mysql8.0 如何安装mysql8.0阅读:31 
-   Word快速设置标题样式步骤详解 Word快速设置标题样式步骤详解阅读:28 
-   20+道必知必会的Vue面试题(附答案解析) 20+道必知必会的Vue面试题(附答案解析)阅读:37 
-   HTML如何制作表单 HTML如何制作表单阅读:22 
-   百词斩可以改天数吗?当然可以,4个步骤轻松修改天数! 百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!阅读:31 
-   ET文件格式和XLS格式文件之间如何转化? ET文件格式和XLS格式文件之间如何转化?阅读:24 
-   react和vue的区别及优缺点是什么 react和vue的区别及优缺点是什么阅读:121 
-   支付宝人脸识别如何关闭? 支付宝人脸识别如何关闭?阅读:21 
-   腾讯微云怎么修改照片或视频备份路径? 腾讯微云怎么修改照片或视频备份路径?阅读:28 















