thinkphp3.2--url访问

1、URL模式(tp3.2版本的标准格式)

    URL_MODEL: 0 1 2 3

    如:http://serverName/index.php(或者其他应用入口文件)/模块/控制器/操作/[参数名/参数值...]

0 【普通模式】也就是传统的GET传参方式来指定当前访问的模块和操作:
   http://localhost/?m=home&c=user&a=login&var=value,m参数表示模块,c参数表示控制器,a参数表示操作(当然这些参数都是可以
   配置的),后面的表示其他GET参数
1 【PATHINFO模式是系统的默认URL模式】,提供了最好的SEO支持,系统内部已经做了环境的兼容处理,所以能够支持大多数的主机环境:
   http://localhost/index.php/home/user/login/var/value/ PATHINFO地址的前三个参数分别表示模块/控制器/操作。
   PATHINFO模式下面,依然可以采用普通URL模式的参数方式,例如: http://localhost/index.php/home/user/login?var=value 依然
   是有效的
   PATHINFO模式下面,URL是可定制的,例如,通过下面的配置:
        // 更改PATHINFO参数分隔符
        'URL_PATHINFO_DEPR'=>'-',
2 【REWRITE模式】是在PATHINFO模式的基础上添加了重写规则的支持,可以去掉URL地址里面的入口文件index.php,但是需要额外配置
   WEB服务器的重写规则:
   http://localhost/home/user/login/var/value 如果是Apache则需要在入口文件的同级添加.htaccess文件,内容如下:
        <IfModule mod_rewrite.c>
         RewriteEngine on
         RewriteCond %{REQUEST_FILENAME} !-d
         RewriteCond %{REQUEST_FILENAME} !-f
         RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
        </IfModule>
3 【兼容模式】是用于不支持PATHINFO的特殊环境,URL地址是: 
    'VAR_PATHINFO'          =>  'path',    //更改兼容模式变量的名称定义
    'URL_PATHINFO_DEPR'=>'-',     //PATHINFO参数分隔符对兼容模式依然有效
    使用以上配置的话,URL访问地址可以变成: http://localhost/?path=/home-user-login-var-value


2、快捷函数

 U方法,用于URL的动态生成

    U('地址表达式',['参数'],['伪静态后缀'],['显示域名'])
    地址表达式的格式定义如下:[模块/控制器/操作#锚点@域名]?参数1=值1&参数2=值2...
    echo U("控制器/操作方法");查看具体url路由解析模式

    U('User/add') // 生成User控制器的add操作的URL地址
    U('Blog/read?id=1') // 生成Blog控制器的read操作 并且id为1的URL地址
    U('Admin/User/select') // 生成Admin模块的User控制器的select操作的URL地址
    U('Blog/cate',array('cate_id'=>1,'status'=>1))
    U('Blog/cate','cate_id=1&status=1')
    U('Blog/cate?cate_id=1&status=1')
    伪静态后缀:U函数会自动识别当前配置的伪静态后缀,如果你需要指定后缀生成URL地址的话,可以显式传入,例如:
        U('Blog/cate','cate_id=1&status=1','xml');



    C(名称) 获得配置变量(convertion.php  config.php)信息
    C(名称,值)  设置配置变量信息

    L()  获得语言变量信息
    E()  给页面输出错误信息


3、跳转和重定向

重定向:控制器的redirect方法和redirect函数的区别在于前者是用URL规则定义跳转地址,后者是一个纯粹的URL地址。

$this -> redirect('模块/操作',参数,延迟,提示信息);
$this->redirect('Public/login');        //快速跳转
$this->redirect('New/category', array('cate_id' => 2), 5, '页面跳转中...');    //重定向到New模块的Category操作

redirect('/New/category/cate_id/2', 5, '页面跳转中...');    //重定向到指定的URL地址
页面跳转:success方法的默认跳转地址是$_SERVER["HTTP_REFERER"],error方法的默认跳转地址是javascript:history.back(-1);
默认的等待时间success方法是1秒,error方法是3秒
$this->success('操作完成','/Article/index',3);    // 操作完成3秒后跳转到 /Article/index
$this->error('操作失败','/Article/error',5);    // 操作失败5秒后跳转到 /Article/error


默认的设置的两个方法对应的模板是(配置文件修改):
'TMPL_ACTION_ERROR' => THINK_PATH . 'Tpl/dispatch_jump.tpl',    //默认错误跳转对应的模板文件
'TMPL_ACTION_SUCCESS' => THINK_PATH . 'Tpl/dispatch_jump.tpl',  //默认成功跳转对应的模板文件
也可以使用项目内部的模板文件:
'TMPL_ACTION_ERROR' => 'Public:error',    //默认错误跳转对应的模板文件
'TMPL_ACTION_SUCCESS' => 'Public:SUCCESS',    //默认成功跳转对应的模板文件


冷暖自知一抹茶ck
请先登录后发表评论
  • 最新评论
  • 总共0条评论