澳门皇冠金沙网站-澳门皇冠844网站

热门关键词: 澳门皇冠金沙网站,澳门皇冠844网站

ThinkPHP的URL重写问题,linux下使用ThinkPHP需要注意

您可能感兴趣的文章:

  • Dwz与thinkphp整合下的数据导出到Excel实例
  • thinkPHP js文件中U方法不被解析问题的解决方法
  • thinkPHP商城公告功能开发问题分析
  • thinkPHP自动验证、自动添加及表单错误问题分析
  • thinkPHP分组后模板无法加载问题解决方法
  • ThinkPHP框架搭建及常见问题(XAMPP安装失败、Apache/MySQL启动失败)
  • 解决nginx不支持thinkphp中pathinfo的问题
  • 解决ThinkPHP关闭调试模式时报错的问题汇总
  • thinkphp3.2.2前后台公用类架构问题分析
  • ThinkPHP框架实现session跨域问题的解决方法
  • ThinkPHP的URL重写问题
  • 解析thinkphp import 文件内容变量失效的问题
  • DWZ ThinkPHP开发时遇到的问题分析

当我在项目开发的过程中 遇到了这么的一个问题,
当我我在后台执行ajax操作的时候,success,error不能成功的返回提示的信息,而是返回object object这样的一条错误提示。

因为我部署在apache上面,需要httpd.conf配置文件中找到LoadModule rewrite_module modules/mod_rewrite.so去掉前面的#,找到AllowOverride None改为AllowOverride All。

哎,小细节容易导致大问题啊。还好解决了~~嘿嘿

protected function ajaxReturn($data,$type='') {
    if(func_num_args()>2) {// 兼容3.0之前用法
      $args      =  func_get_args();
      array_shift($args);
      $info      =  array();
      $info['data']  =  $data;
      $info['info']  =  array_shift($args);
      $info['status'] =  array_shift($args);
      $data      =  $info;
      $type      =  $args?array_shift($args):'';
    }
    //
    //较原版增加部分--
    $data['statusCode'] = 1; //
    $data['navTabId'] = $_REQUEST['navTabId'];//
    $data['rel'] = $_REQUEST['rel']; //
    $data['callbackType'] = $_REQUEST['callbackType']; //
    $data['forwardUrl'] = $_REQUEST['forwardUrl']; //
    $data['confirmMsg'] = $_REQUEST['confirmMsg'];//
    $data['message'] = $data['info']; //840206883@qq.com
    //较原版增加部分--
    //
    if(empty($type)) $type =  C('DEFAULT_AJAX_RETURN');
    switch (strtoupper($type)){
      case 'JSON' :
        // 返回JSON数据格式到客户端 包含状态信息
        header('Content-Type:application/json; charset=utf-8');
        exit(json_encode($data));
      case 'XML' :
        // 返回xml格式数据
        header('Content-Type:text/xml; charset=utf-8');
        exit(xml_encode($data));
      case 'JSONP':
        // 返回JSON数据格式到客户端 包含状态信息
        header('Content-Type:application/json; charset=utf-8');
        $handler =  isset($_GET[C('VAR_JSONP_HANDLER')]) ? $_GET[C('VAR_JSONP_HANDLER')] : C('DEFAULT_JSONP_HANDLER');
        exit($handler.'('.json_encode($data).');');
      case 'EVAL' :
        // 返回可执行的js脚本
        header('Content-Type:text/html; charset=utf-8');
        exit($data);
      default   :
        // 用于扩展其他返回格式数据
        tag('ajax_return',$data);
    }
}

而因为我尝试部署的是基于ThinkPHP的conist企业版2.0,在config.php里竟然有这么一个配置'URL_MODEL' =>C('TOKEN.false_static'),,而TOKEN.false_static的值在初始化的时候被设置为了1,所以。。。模式一直还是1,PATHINFO模式。

弄了一下午,偶然想起linux是识别文件大小写的,查看了一下代码,发现实例化类的时候并没有注意文件大小写。如 $dao = D("inventoryview") 对应的视图文件是InventoryViewModel.class.php。这样在windows下跑是没问题的,但是在linux下,需要写成$dao = D("InventoryView")。

J-UI  dwz 版本好像是 1.4

我想要的结果无非是去掉URL路径中的index.php

目前我用的 thinkphp 版本是  3.1.3

首先是配置.htaccess

本文由澳门皇冠金沙网站发布于编辑程序,转载请注明出处:ThinkPHP的URL重写问题,linux下使用ThinkPHP需要注意