一、标准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. ECMA中的switch语句

    switch借鉴自其他语言,但也有自己的特色. 1.可以在switch语句中使用任何数据类型(数值.字符串.对象等),很多其他语言中只能使用数值. 2.每个case的值不一定是常量,可以是变量或者表达 ...

  2. mysql优化一 之 优化内容概述及开启慢查日志的相关配置

    1-1数据库优化的目的 首先是为了避免出现页面访问错误(基本有三种) (1)由于数据库连接timeout产生的页面5XX错误 (2)由于慢查询造成页面无法加载 (3)由于阻塞造成的数据无法提交 其次: ...

  3. 处理session跨域几种的方案

    常用跨域共用session的是登录模块,我相信很多开发的朋友的都遇到过,只需要一个地方登录,相关联的网站也是处于登录状态.两种情况:一种9streets.cn和a.9streets.cn之间,另一种是 ...

  4. android eclipse 导入idea项目

    将以下代码复制到.project中 <?xml version="1.0" encoding="UTF-8"?> <projectDescri ...

  5. [原]ComFriendlyWaitForSingleObject

    structThreadParam { unsignedint p1;// +00h ebp-24h unsignedint p2;// +04h ebp-20h unsignedint cookie ...

  6. ExecutorService线程池应用

    //线程数量 int threadNum = lists.size(); //创建一个线程池 ExecutorService pool = Executors.newFixedThreadPool(t ...

  7. html热力图的操作(点击图片的不同位置操作不同的事件)适合说明文档

    页面核心代码 <div class="first_top"> <div class="back"> <img src=" ...

  8. C# API项目代码正确 ,页面出不来的问题

    C# API项目代码正确  页面出不来的问题,截图如下: 解决方法: 在项目里设置好[起始页],就可以了.

  9. boldSystemFontOfSize 和 systemFontOfSize 的区别

    使用 UIFont 的下列方法: + systemFontOfSize + boldSystemFontOfSize + italicSystemFontOfSize p.p1 { margin: 0 ...

  10. kafka使用getOffsetsBefore()获取获取offset异常分析

    根据时间戳获取kafka的topic的偏移量,结果获取的偏移量量数据组的长度为0,就会出现如下的数组下标越界的异常,实现的原理是使用了kafka的getOffsetsBefore()方法: Excep ...