ThinkPHP 3.2.3(三)架构之URL模式

一、标准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

时间: 2024-10-12 21:21:07

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

JSP&&SERVLET学习笔记(三):URL模式设置

//URL模式的设置 //                         环境路径          Servlet路径    路径信息 //requestURI = contextPath + servletPath + pathInfo; //Servlet路径认为/*为空串 package cc.openhome; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletExc

ThinkPHP第二课 框架MVC目录和URL访问方式

第二课 框架MVC目录和URL访问方式 1.说明: ThinkPHP是基于MVC的框架,认识框架目录将更好的实现分层,掌握ThinkPHP.URL访问就是访问框架的控制器(MVC中的C),共有四种方式,框架中的C起到分模块的作用. url的4种访问方式: 1.PATHINFO 模式 -- 重点!!!!!! http://域名/项目名/入口文件/模块名/方法名/键1/值1/键2/值2 2.普通模式 http://域名/项目名/入口文件?m=模块名&a=方法名&键1=值1&键2=值2

ThinkPHP的URL模式有四种,默认的PATHINFO模式

ThinkPHP的URL模式有四种,默认是PATHINFO模式,其他三种分别为:普通模式.REWRITE和兼容模式. 浏览器输入格式为:http://localhost/demo39/index.php/模块/控制器/操作 在Home的Controller建立UserController.calss.php,如下图所示: 在浏览器上输入 http://localhost/demo39/index.php/Home/User 得到的结果为: user index 这时在浏览器中输入上面所说的输入格

ThinkPHP 学习笔记(六) URL模式

1.URL大小写 ThinkPHP框架的URL是区分大小写(主要是针对模块.控制器和操作名,不包括应用参数)的,这一点非常关键,因为ThinkPHP的命名规范是采用驼峰法(首字母大写)的规则,而URL中的模块和控制器都是对应的文件,因此在Linux环境下面必然存在区分大小写的问题. 框架内置了一个配置参数用于解决URL大小写的问题,如下:     'URL_CASE_INSENSITIVE'=>true, 当URL_CASE_INSENSITIVE设置为true的时候表示URL地址不区分大小写,

thinkphp url模式

入口文件是应用的单一入口,对应用的所有请求都定向到应用入口文件,系统会从URL参数中解析当前请求的模块.控制器和操作: http://serverName/index.php/模块/控制器/操作 这是3.2版本的标准URL格式. 可以通过设置模块绑定或者域名部署等方式简化URL地址中的模块及控制器名称. URL大小写 ThinkPHP框架的URL是区分大小写(主要是针对模块.控制器和操作名,不包括应用参数)的,这一点非常关键,因为ThinkPHP的命名规范是采用驼峰法(首字母大写)的规则,而UR

thinkphp 学习_4中URL模式

ThinkPHP有四种url模式: 0 普通模式 http://localhost/imooc/index.php?m=Index&a=user&id=1     普通模式也就是传统的GET传参方式来指定当前访问的模块和操作,出现了m和其他页面后端取值有冲突的情况下要么 ,后端取值方式,要么改写 不同模式的命名 'VAR_MODULE' => 'module', // 默认模块获取变 'VAR_CONTROLLER' => 'controller', // 默认控制器获取变量

thinkphp学习笔记6—url模式

原文:thinkphp学习笔记6-url模式 入口文件是应用的唯一入口,因为可以多入口,每个应用可以对应一个入口文件,系统会从rul参数中解析当前请求的模块,控制器,操作.ThinkPHP是区分大小写的,考虑到linux是区分大小写的,所以在ThinkPHP中模块,控制器,模型等都是区分大小写的,并且使用驼峰命名规则. 如果我们直接访问入口文件index.php,url中没有给出模块,控制器,操作,系统会默认访问Home模块下的Index控制器下的index操作,因此下面的两种访问方法得到的结果

Thinkphp_基础(2)URL模式

URL请求 ThinkPHP采用单一入口模式访问应用,对应用的所有请求都定向到应用的入口文件,系统会从URL参数中解析当前请求的模块.控制器和操作,下面是一个标准的URL访问格式: http://serverName/index.php/模块/控制器/操作 如果我们直接访问入口文件的话,由于URL中没有模块.控制器和操作, 因此系统会访问默认模块(Home)下面的默认控制器(Index)的默认操作(index), 因此下面的访问是等效的: http://serverName/index.php

使用Micrisoft.net设计方案 第三章Web表示模式

第三章Web表示模式 体系结构设计者在设计第一个作品时比较精简和干练.在第一次设计时,并清除自己做什么,因此比较小心谨慎.第二个作品是最危险的一个作品,此时他会对第一个作品做修饰和润色,以及把第一次设计的边缘性设计思想都用在第二个作品,结果导致设计过头. 最初的Web很简单,只是有几个简单的Html页面组成,实现信息共享.随着业务的发展,需要根据业务来决定显示什么,于是开发了CGI编程,把大量的业务逻辑写到CGI中,然后输出到页面.随着发展,CGI编程模式受到了挑战,不能满足发展的需求,于是开发