ThinkPHP中pathinfo的访问模式、路径访问模式及URL重写总结
本文针对ThinkPHP中pathinfo的两种模式、四种路径访问模式和URL重写相关知识进行了总结归纳,分享给大家便于查询和借鉴。具体归纳如下:
1、pathinfo
访问模块IndexAction.class.php下边的test方法
http://localhost/index.php?m=Index&a=test 等同于 http://localhost/index.php/Index/test
2、四种路径访问模式
在config目录下边来做修改 URL_MODEL的值,分别表述如下:
值为0 叫做普通模式。如:http://localhost/index.php?m=模块&a=方法
值为1 叫做pathinfo模式。如:http://localhost/index.php/模块/方法
值为2 叫做rewrite重写(伪静态) 可以自己写相关的rewrite规则,也可以使用系统为我们提供的rewrite规则隐藏掉index.php,生成:http://localhost/模块/方法
值为3 叫做兼容模式。当服务器上面不支持pathinfo模式的时候,但是你又在之前的路径访问格式上面,全部用的是pathinfo格式。那么它会提示你路径格式不正确。那么,你就可以用标号为3的兼容模式来处理。他的路径访问类似于http://localhost/index.php?s=模块/方法
3、URL重写步骤:
(1)、D:\wamp\wamp\Apache2\conf\httpd.conf开启apache服务器中的URL_REWRITE模块
(2)、AllowOverride None 将 None 改为 All
(3)、确保config.php配置文件中 URL_MODEL 设置为 2
(4)、把 .htaccess 文件放到入口文件的同级目录下
采用URL重写利于seo,不过会加大服务器的性能消耗。
希望本文所述对大家ThinkPHP程序设计有所帮助。
相关推荐
-
thinkPHP5.0框架模块设计详解
本文实例讲述了thinkPHP5.0框架模块设计.分享给大家供大家参考,具体如下: 5.0版本对模块的功能做了灵活设计,默认采用多模块的架构,并且支持单一模块设计,所有模块的命名空间均以app作为根命名空间(可配置更改). 目录结构 标准的应用和模块目录结构如下: ├─application 应用目录(可设置) │ ├─common 公共模块目录(可选) │ ├─common.php 公共函数文件 │ ├─route.php
-
thinkphp的URL路由规则与配置实例
本文实例讲述了thinkphp的URL路由规则与配置方法.分享给大家供大家参考.具体分析如下: 一.URL规则 1.默认是区分大小写的 2.如果我们不想区分大小写可以改配置文件 复制代码 代码如下: 'URL_CASE_INSENSITIVE'=>true,//url不区分大小写 3.如果模块名为 UserGroupAction,那么url找模块就必要要写成 复制代码 代码如下: http://localhost/thinkphp4/index.php/user_group/index 4.如果
-
thinkPHP5.0框架自动加载机制分析
本文实例讲述了thinkPHP5.0框架自动加载机制.分享给大家供大家参考,具体如下: 概述 ThinkPHP5.0 真正实现了按需加载,所有类库采用自动加载机制,并且支持类库映射和composer类库的自动加载. 自动加载的实现由think\Loader类库完成,自动加载规范符合PHP的PSR-4. 自动加载 由于新版ThinkPHP完全采用了命名空间的特性,因此只需要给类库正确定义所在的命名空间,而命名空间的路径与类库文件的目录一致,那么就可以实现类的自动加载. 类库的自动加载检测顺序如下:
-
浅析ThinkPHP中的pathinfo模式和URL重写
复制代码 代码如下: http://serverName/appName/module/action/id/1/ 这个就是pathinfo模式 在不考虑路由的情况下,第一个参数会被解析成模块名称(如果启用了分组的话,则依次往后递推),第二个参数会被解析成操作,后面的参数是显式传递的,而且必须成对出现,例如: 复制代码 代码如下: http://serverName/appName/module/action/year/2008/month/09/day/21/ 通常的URL里面含有index.p
-
thinkPHP5.0框架命名空间详解
本文实例讲述了thinkPHP5.0框架命名空间.分享给大家供大家参考,具体如下: 命名空间 ThinkPHP采用命名空间方式定义和自动加载类库文件,有效的解决了多模块和Composer类库之间的命名空间冲突问题,并且实现了更加高效的类库自动加载机制. 如果不清楚命名空间的基本概念,可以参考PHP手册:PHP命名空间 特别注意的是,如果你需要调用PHP内置的类库,或者第三方没有使用命名空间的类库,记得在实例化类库的时候加上 \,例如: // 错误的用法 $class = new stdClass
-
thinkPHP5.0框架引入Traits功能实例分析
本文实例讲述了thinkPHP5.0框架引入Traits功能.分享给大家供大家参考,具体如下: ThinkPHP 5.0开始采用trait功能(PHP5.4+)来作为一种扩展机制,可以方便的实现一个类库的多继承问题. Traits 是一种为类似 PHP 的单继承语言而准备的代码复用机制.Trait 为了减少单继承语言的限制,使开发人员能够自由地在不同层次结构内独立的类中复用方法集.Traits和类组合的语义是定义了一种方式来减少复杂性,避免传统多继承和混入类(Mixin)相关的典型问题. 但由于
-
ThinkPHP中url隐藏入口文件后接收alipay传值的方法
本文实例讲述了ThinkPHP中url隐藏入口文件后接收alipay传值的方法.分享给大家供大家参考.具体方法如下: 现在公司项目的需求变化多端,项目使用的是Thinkphp2.0,而conf.php中设置的URL_MODEL=2,为了兼容.htaccess和隐藏index.php,但在使用一些第三方接口时(例如支付宝或MSN开放平台),他们返回的参数往往含有一个?号,而URL_MODEL=2时,TP会自动将含有?的URL进行转换. 转换前:http://www.xxx.com/index.ph
-
让ThinkPHP支持大小写url地址访问的方法
本文实例讲述了让thinkphp支持大小写url地址访问的方法.分享给大家供大家参考.具体实现方法如下: 通常ThinkPHP默认是区别大小写url的,这种也是与linux系统一样在小写url是两个不同的名字,但我们使用windows习惯了对于大小写都认为一样的,所以还是要根据用户习惯来处理问题,下面我们一起来看问题解决方法. 在配置文件中开启了thinkphp的大小写识别功能,使链接大小写都可以正常访问: 'URL_CASE_INSENSITIVE' =>true 文件命名都是规范的,但是在模
-
thinkphp四种url访问方式详解
本文实例分析了thinkphp的四种url访问方式.分享给大家供大家参考.具体分析如下: 一.什么是MVC thinkphp的MVC模式非常灵活,即使只有三个中和一个也可以运行. M -Model 编写model类 对数据进行操作 V -View 编写html文件,页面呈现 C -Controller 编写类文件(UserAction.class.php) 二.ThinkPHP的MVC特点 (简单了解) 三.ThinkPHP的MVC对应的目录 (简单了解) M 项目目录/应用目录/Li
-
thinkPHP5.0框架URL访问方法详解
本文实例讲述了thinkPHP5.0框架URL访问方法.分享给大家供大家参考,具体如下: URL设计 ThinkPHP5.0在没有启用路由的情况下典型的URL访问规则是: http://serverName/index.php(或者其它应用入口文件)/模块/控制器/操作/[参数名/参数值...] 支持切换到命令行访问,如果切换到命令行模式下面的访问规则是: >php.exe index.php(或者其它应用入口文件) 模块/控制器/操作/[参数名/参数值...] 可以看到,无论是URL访问还是命
-
在nginx中配置pathinfo模式支持thinkphp的URL重写
最近一个项目中使用了ThinkPHP做为开发框架,URL上我们使用了PATHINFO模式,但是Nginx默认是不支持PATHINFO的,需要进行手动配置才可以,于是我们按照了以下方法进行了Nginx的PATHINFO支持配置:修改nginx.conf,找到server中的 location ~ .php${},修改为location ~ .php {},并在其中增加以下内容: 复制代码 代码如下: set $path_info "";set $real_script_name $fas
-
让Nginx支持ThinkPHP的URL重写和PATHINFO的方法分享
网上搜了很多方法都不奏效,研究了一天,发现通过以下的配置可以完美支持 'URL_MODEL' => 2 的情况了 复制代码 代码如下: location /project/ { index index.php; if (!-e $request_filename) { rewrite ^/project/(.*)$ /project/index.php/$1 last; break; } } location ~ .+\.php($|/) { set $script $uri; set $pat
随机推荐
- document.createElement()用法
- JS前端笔试题分析
- oracle SCN跟TIMESTAMP之间转换
- Python中if __name__ == '__main__'作用解析
- asp.net 上传图片并同时生成缩略图的代码
- C\C++ 获取当前路径实例详解
- js实现点击按钮弹出上传文件的窗口
- Redis总结笔记(二):C#连接Redis简单例子
- 详解C++中常量的类型与定义
- 解决rs.absolutepage=-1的问题
- Win2008 网络策略设置方法 让访问更安全
- winform c#中子窗体关闭刷新父窗体的实例
- Java的SPI机制实例详解
- C#序列化与反序列化实例
- C#与.net高级编程 C#的多态介绍
- PHP答题类应用接口实例
- python修改字典键(key)的方法
- Python IDE Pycharm中的快捷键列表用法
- layui的select联动实现代码
- Centos7 安装Nginx整合Lua的示例代码