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', //默认成功跳转对应的模板文件
本文为崔凯原创文章,转载无需和我联系,但请注明来自冷暖自知一抹茶ckhttp://www.cksite.cn