thinkphp3.1.2 URL

原创 2017年07月24日 21:08:14

一、URL规则

    1、默认是区分大小写的 
    2、如果我们不想区分大小写可以改配置文件
        'URL_CASE_INSENSITIVE'=>true,//url不区分大小写    
    3、如果模块名为 UserGroupAction
        那么url找模块就必要要写成
        http://localhost/thinkphp4/index.php/user_group/index
    4、如果'URL_CASE_INSENSITIVE'=>false
        那么url也可以写为
        http://localhost/thinkphp4/index.php/UserGroup/index

二、URL伪静态

    'URL_HTML_SUFFIX'=>'html|shtml|xml',//限制伪静态的后缀

三、URL路由

    1、启动路由
        要在配置文件中开启路由支持
    2、使用路由
        1.规则表达式配置路由
            'my'=>'Index/index',//静态地址路由
            ':id/:num'=>'Index/index',//动态地址路由,其中id、num表示传进的参数,可以通过$_GET['id']获得
            'year/:year/:month/:date'=>'Index/index',//动态和静态混合地址路由
            'year/:year\d/:month\d/:date\d'=>'Index/index',//动态和静态混合地址路由 
            加上 \d代表类型只能是数字
            'my/:id$'=>'Index/index',// 加上$说明地址中只能是 my/1000 后面不能有其他内容了
        2.正则表达式配置路由
        '/^year\/(\d{4})\/(\d{2})\/(\d{2})/'=>'Index/index?year=:1&month=:2&date=:3'
        3、注意事项:
            1.越复杂的路由越往前面放
                'URL_ROUTE_RULES'=>array(
                'my/:year/:month:/:day'=>'Index/day',
                'my/:id\d'=>'Index/index',
                'my/:name'=>'Index/index',
                )
            2.可以使用$作为完全匹配的路由规则
                    'URL_ROUTE_RULES'=>array(
                        'my/:id\d$'=>'Index/index',
                        'my/:name$'=>'Index/index',
                        'my/:year/:month:/:day$'=>'Index/day',
            ),
            3.用正则匹配的方式
                'URL_ROUTE_RULES'=>array(
                '/^my\/(\d+)$/'=>'Index/index?id=:1',
                '/^my\/(\w+)$/'=>'Index/index?name=:1',
                '/^my\/(\d{4})\/(\d{2})\/(\d{2})$/'=>'Index/day?year=:1&month=:2&day=:3',
                ),

四、URL重写

1.为了达到更好的SEO的效果可能去掉url里面的index.php ,通过url重写的方式达到这种效果,需要服务器开启url_rewrite模块才能支持。
下面是apache的配置过程:
1.http.conf配置文件中加载url_rewrite.so模块
2.AllowOverwrite None 将None改为All
3.确保URL_MODEL 设置为2
4.将下面的内容保存为.htaccess文件放到入口文件的同级目录下
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
</IfModule>

五、URL生成

为了配合所使用的URL模式,我们需要能够动态的根据当前的URL设置生成对应的URL地址,为此,ThinkPHP内置提供了U方法,用于URL的动态生成,可以确保项目在移植过程中不受环境的影响。
U方法的定义规则如下(方括号内参数根据实际应用决定):
U('[分组/模块/操作]?参数' [,'参数','伪静态后缀','是否跳转','显示域名'])

如果不定义项目和模块的话 就表示当前项目和模块名称,下面是一些简单的例子:
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方法的第二个参数支持数组和字符串两种定义方式,如果只是字符串方式的参数可以在第一个参数中定义,例如:
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')

版权声明:本文为博主原创文章,未经博主允许不得转载。

ThinkPHP 3.1.2 输出和模型使用1

通过display方法输出 想分配变量可以使用assign方法 方法调用模板:C层调用V层 http://localhost/thinkphp/index.php 模板不存在[./Home...

ThinkPHP 3.1.2 视图

一、模板的使用 a、规则 模板文件夹下[TPL]/[分组文件夹/][模板主题文件夹/]和模块名同名的文件夹[Index]/和方法名同名的文件[index].html(.tpl...
  • TH_NUM
  • TH_NUM
  • 2017年07月23日 15:01
  • 121

ThinkPHP 3.1.2 模板中的基本语法

一、导入CSS和JS文件 1、css link js scr 2.import
  • TH_NUM
  • TH_NUM
  • 2017年07月24日 14:04
  • 179

thinkphp_3.1.2查询和视图

查询方式一般使用①普通查询方式 字符串:$arr=$m->where('sex=0 and username="ljx"')->find() 数组: $data['sex']=0;$data['...

8.ThinkPHP 3.1.2 查询方式的一般使用1

1.获取所有数据: function show(){ $m=M('user'); $arr=$m->select(); var_dump($arr); $this->...

ThinkPHP3.1.2整合UCenter详解(一)

最近应公司的要求,要开发一个有点像QQ空间那样的会员管理中心网站,发现UCenter的很多功能酷似QQ空间,于是选择了UCenter作为程序的会员管理中心。前台嘛就选择我之前基于thinkphp3.1...

ThinkPHP 3.1.2 模板中的变量

一、变量输出 (重点) 1.标量输出 2.数组输出 {$name[1]} {$name['k2']} {$name.k1} 3.对象输出 {$...

thinkphp_3.1.2介绍和安装

因为现在学习的是thinkphp_3.1.2版本,所以接下来的讨论是基于框架3.1.2thinkphp简介 ①ThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架,诞生于2006年初,...

ThinkPHP3.1.2整合UCenter详解(三)

在上一章中的ThinkPHP3.1.2整合UCenter详解(二)已经实现了通讯成功了!那么接下来我们的目标: 在thinkphp中会员注册成功时,UCenter Home也同时注册成功。  ...

ThinkPHP3.1.2整合UCenter详解(二)

在ThinkPHP3.1.2整合UCenter详解(一) 中我们安装完了WBlog3.1.2、UCenter_Home_2.0_SC_UTF8和UCenter 1.6.0三个程序后。接下来接着上一篇讲...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:thinkphp3.1.2 URL
举报原因:
原因补充:

(最多只允许输入30个字)