一、标准URL格式
http://serverName/index.php/模块/控制器/操作
 
二、URL大小写
在/ThinkPHP/Conf/convention.php文件里有URL大小写的配置选项,默认false表示URL区分大小写,true则表示不区分大小写。
手册说,开启调试模式的情况下,这个参数是false,但我的项目中该参数依然是true。
 
三、URL模式
ThinkPHP支持的URL模式有四种:普通模式、PATHINFO、REWRITE和兼容模式,可以通过设置URL_MODEL参数来改变URL模式。
如果整个应用下面的模块都是采用统一的URL模式,就可以在应用配置文件中设置URL模式;
如果不同的模块需要设置不同的URL模式,则可以在模块配置文件中设置。
 
例如:在Home/Controller/IndexController.class.php文件里定义一个带参数的方法:
则不同模式的URL写法如下:
URL模式
URL_MODEL
写法
普通模式
(GET传参)
0
可以在/ThinkPHP/Conf/convention.php文件里设置变量, 默认的变量设置如下:
URL写为:http://localhost/?m=home&c=index&a=getName&name=liulu,
m参数表示模块,c参数表示控制器,a参数表示操作,后面的表示其他GET参数。
 
如果将变量改为:
则URL写为:http://localhost/ThinkPHP-3.2.3/?module=home&controller=index&action=getName&name=liulu
如果仍用http://localhost/ThinkPHP-3.2.3/?m=home&c=index&a=getName,依然可以访问。。。
PATHINFO模式
(系统默认)
1
http://localhost/ThinkPHP-3.2.3/index.php/home/index/getName/name/liulu/
 
PATHINFO模式依然可以采用普通URL模式的参数方式:http://localhost/ThinkPHP-3.2.3/index.php/home/index/getName?name=liulu
 
可以更改/ThinkPHP/Conf/convention.php文件里的URL_PATHINFO_DEPR配置:
// PATHINFO模式下,各参数之间的分割符号
'URL_PATHINFO_DEPR'     =>  '/',   
如果“/”改为“-”,URL写为:localhost/ThinkPHP-3.2.3/index.php/home-index-getName-name-liulu或localhost/ThinkPHP-3.2.3/index.php/home-index-getName?name=liulu
REWRITE模式
2
在PATHINFO模式的基础上添加了重写规则的支持,可以去掉URL地址里面的入口文件index.php,但是需要额外配置WEB服务器的重写规则。
 
如果是Apache则需要添加与入口文件同级的.htaccess文件
URL写为:http://localhost/ThinkPHP-3.2.3/home/index/getName?name=liulu
兼容模式
3
用于不支持PATHINFO的特殊环境。
 
在/ThinkPHP/Conf/convention.php文件里,兼容模式变量的名称定义默认为s:
// 兼容模式PATHINFO获取变量
// 例如 ?s=/module/action/id/1 后面的参数取决于URL_PATHINFO_DEPR
'VAR_PATHINFO'          =>  's',   
URL写为:http://localhost/ThinkPHP-3.2.3/?s=/home/index/getName/name/liulu
配合Web服务器重写规则的定义,可以达到和REWRITE模式一样的URL效果。
URL写为:http://localhost/ThinkPHP-3.2.3/home/index/getName/name/liulu

ThinkPHP 3.2.3(三)架构之URL模式的更多相关文章

  1. 【三十一】thinkphp之安装、配置、模块化及URL模式

    一:安装与配置 1.获取ThinkPHP 下载地址:http://www.thinkphp.cn/down.html 2.入口文件 ThinkPHP采用单一入口模式对项目进行部署和访问,所以我们需要通 ...

  2. ThinkPHP URL模式和URL重写

    现在用的版本是TP3.1.3,这两天总是遇到NotFound的错误,解析路径错误,所以认真研究了一下手册,发现问题出在URL模式上面. URL模式 一般是使用U方法来生成路径,U方法的定义规则如下(方 ...

  3. thinkphp URL 模式

    兼容ThinkPHP三种url模式的nginx rewrite location / { root /var/www; index index.html index.htm index.php; if ...

  4. ThinkPHP的URL模式

    ThinkPHP的URL模式有四种,默认是PATHINFO模式,其他三种分别为:普通模式.REWRITE和兼容模式. 一.PATHINFO模式 浏览器输入格式为: http://localhost/d ...

  5. thinkphp url模式

    入口文件是应用的单一入口,对应用的所有请求都定向到应用入口文件,系统会从URL参数中解析当前请求的模块.控制器和操作: http://serverName/index.php/模块/控制器/操作 这是 ...

  6. ThinkPHP的四种URL模式 URL_MODEL

    ThinkPHP支持四种URL模式,可以通过设置URL_MODEL参数来定义,包括普通模式.PATHINFO.REWRITE和兼容模式. 普通模式 设置URL_MODEL 为0 采用传统的URL参数模 ...

  7. thinkphp学习笔记6—url模式

    原文:thinkphp学习笔记6-url模式 入口文件是应用的唯一入口,因为可以多入口,每个应用可以对应一个入口文件,系统会从rul参数中解析当前请求的模块,控制器,操作.ThinkPHP是区分大小写 ...

  8. 大型网站技术架构(四)--核心架构要素 开启mac上印象笔记的代码块 大型网站技术架构(三)--架构模式 JDK8 stream toMap() java.lang.IllegalStateException: Duplicate key异常解决(key重复)

    大型网站技术架构(四)--核心架构要素   作者:13GitHub:https://github.com/ZHENFENG13版权声明:本文为原创文章,未经允许不得转载.此篇已收录至<大型网站技 ...

  9. 详解ThinkPHP支持的URL模式有四种普通模式、PATHINFO、REWRITE和兼容模式

    URL模式     URL_MODEL设置 普通模式    0 PATHINFO模式     1 REWRITE模式     2 兼容模式     3 如果你整个应用下面的模块都是采用统一的URL模式 ...

随机推荐

  1. Vmware10如何打开vmware11建立的虚拟机

    先说一下办法: 使用文本工具打开VMware 虚拟机配置文件(*.vmx文件),找到"virtualHW.version"一行,将值11修改为10保存即可. 修改之前: 硬件兼容性 ...

  2. struts2 的正则表达式验证不起作用解决办法

    在官网上提供的model为: <field-validator type="regex"> <param name="expression"& ...

  3. angularJS中directive与controller之间的通信

    当我们在angularJS中自定义了directive之后需要和controller进行通讯的时候,是怎么样进行通讯呢? 这里介绍3种angular自定义directive与controller通信的 ...

  4. UMLl类图实例

    下面是类图的实例(好像大话设计中有): UML中类图实例 接口:空心圆+直线(唐老鸭类实现了‘讲人话’):依赖:虚线+箭头(动物和空气的关系):关联:实线+箭头(企鹅需要知道气候才迁移):聚合:空心四 ...

  5. mysql replace

    replace(object, search,replace) 示例:update table set col1 = replace(col1, 'a', 'A'); 将col1字段中的小写a替换成大 ...

  6. spring-事物-jdbc-hibernate

  7. css属性的选择对动画性能的影响

    现在手机的占比越来越高,各种酷炫页面层出不穷,这些特效都离不开css动画.说到css动画,主流的情况也就无非这两大类:位移和形变.而我们在写一个动画特效的过程中,如何去提升它的性能呢?当然首先我们需要 ...

  8. Jenkins + maven + Git+selenium

    1.在Jenkins中配置Maven与Git 1)在系统管理>管理插件>可选插件 页面分别下载Git plugin 与 Maven Integration plugin插件,安装完成后再已 ...

  9. JAVA 1.9 面向对象之封装

    1. 面向对象程序设计的三大基本特征:继承(Inheritence).封装(Encapsulation).多态(Polymorphism)2. 封装:类包含了数据与方法,将数据与方法放在一个类中就构成 ...

  10. php 判断当前的操作系统的方法

    因为windows 和 linux 下的标识符是不一样的,所以写了个方法来获取当前的标识符. /** * 对操作系统进行判断 * @return string */ static function j ...