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

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

URL模式     URL_MODEL设置
普通模式 

   0

PATHINFO模式     1

REWRITE模式     2

兼容模式     3

    如果你整个应用下面的模块都是采用统一的URL模式,就可以在应用配置文件中设置URL模式,如果不同的模块需要设置不同的URL模式,则可以在模块配置文件中设置。

普通模式

普通模式也就是传统的GET传参方式来指定当前访问的模块和操作,例如: http://localhost/?m=home&c=user&a=login&var=value

m参数表示模块,c参数表示控制器,a参数表示操作(当然这些参数都是可以配置的),后面的表示其他GET参数。

如果默认的变量设置和你的应用变量有冲突的话,你需要重新设置系统配置,例如改成下面的:

    ‘VAR_MODULE’     =>  ‘module’,     // 默认模块获取变量

    ‘VAR_CONTROLLER’ => ‘controller’, // 默认控制器获取变量

    ‘VAR_ACTION’ => ‘action’, // 默认操作获取变量

上面的访问地址则变成: http://localhost/?module=home&controller=user&action=login&var=value

    注意,VAR_MODULE只能在应用配置文件中设置,其他参数可以则也可以在模块配置中设置

PATHINFO模式

PATHINFO模式是系统的默认URL模式,提供了最好的SEO支持,系统内部已经做了环境的兼容处理,所以能够支持大多数的主机环境。对应上面的URL模式,PATHINFO模式下面的URL访问地址是: 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’=>’-‘,

我们还可以支持下面的URL访问: http://localhost/index.php/home-user-login-var-value



REWRITE模式

REWRITE模式是在PATHINFO模式的基础上添加了重写规则的支持,可以去掉URL地址里面的入口文件index.php,但是需要额外配置WEB服务器的重写规则。

如果是Apache则需要在入口文件的同级添加.htaccess文件,内容如下:

   

    RewriteEngine on

    RewriteCond %{REQUEST_FILENAME} !-d

    RewriteCond %{REQUEST_FILENAME} !-f

    RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]

   

接下来,就可以用下面的URL地址访问了: http://localhost/home/user/login/var/value

    更多环境的URL重写支持参考部署部分的URL重写。

兼容模式

兼容模式是用于不支持PATHINFO的特殊环境,URL地址是: http://localhost/?s=/home/user/login/var/value

可以更改兼容模式变量的名称定义,例如:

    ‘VAR_PATHINFO’  =>  ‘pathinfo’

PATHINFO参数分隔符对兼容模式依然有效,例如:

    // 更改PATHINFO参数分隔符

    ‘URL_PATHINFO_DEPR’=>’-‘,

使用以上配置的话,URL访问地址可以变成: http://localhost/?s=/home-user-login-var-value

兼容模式配合Web服务器重写规则的定义,可以达到和REWRITE模式一样的URL效果。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/113484.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • widthStep、width

    widthStep、widthwidthStep表示存储一行像素需要的字节数。widthStep必须是4的倍数,如果8U图像宽度为3,那么widthStep是4,加一个字节补齐。这个图像的一行需要4个字节,只使用前3个,最后一个空在那儿不用。也就是一个宽3高3的图像的imageData数据大小为4*3=12字节。转自:http://blog.sina.com.cn/s/blog_4b46937b0100

    2022年4月30日
    55
  • 粒子群算法的matlab实现(一)[通俗易懂]

    粒子群算法的matlab实现(一)[通俗易懂]粒子群算法(ParticleSwarmOptimization,PSO)是20世纪90年代兴起的一门学科,因其概念简明、实现方便、收敛速度快而为人所知。粒子群算法的基本思想是模拟鸟群随机搜寻食物的捕食行为,鸟群通过自身经验和种群之间的交流调整自己的搜寻路径,从而找到食物最多的地点。其中每只鸟的位置/路径则为自变量组合,每次到达的地点的食物密度即函数值。每次搜寻都会根据自身经验(自身历史搜寻的最

    2022年6月10日
    31
  • 深浅copy

    python——赋值与深浅拷贝备注:此文为转发连接,初学编程的小伙伴都会对于深浅拷贝的用法有些疑问,今天我们就结合python变量存储的特性从内存的角度来谈一谈赋值和深浅拷贝~~~预备知识一——

    2022年3月29日
    43
  • 利用Nginx构建负载均衡server[通俗易懂]

    利用Nginx构建负载均衡server

    2022年1月19日
    40
  • Lamp架构_10个人公司的架构图

    Lamp架构_10个人公司的架构图一:LAMP架构简介LAMP是目前成熟的一种企业网站应用模式之一,指的是协同工作的一套系统和相关软件的整合,可提供PHP动态web站点应用及开发环境,LAMP经过十年的完善各个组件间的兼容性,协作能力,稳定等方面也不断增强(注:Apache服务是一个静态网站,它里面的测试页都是以HTML的格式结尾,以HTML写出的网站都是静态的,没有什么功能,没有办法去关联后台的数据库,所以说他只能做一个展示的页面,LAMP构建出来就是一个动态网页的一个后台,PHP是一种动态网站开发语言,…

    2022年10月16日
    2
  • 配置Cisco MDS光纤存储交换机配置zone[通俗易懂]

    配置Cisco MDS光纤存储交换机配置zone[通俗易懂]配置CiscoMDS光纤存储交换机(MDSMultilayerDirectorSwitch多层光纤阵列交换机)大概流程:1:创建VSAN,将端口加入VSAN2:创建ZONE,将端口加入ZONE3:创建zoneSet,将ZONE加入set,并启用zoneSet4:启用所有端口使用命令行基本配置MDS-1(config)#sw…

    2025年6月16日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号