thinkPHP URL访问

ThinkPHP采用单一入口模式访问应用,对应用的所有请求都定向到应用的入口文件,系统会从URL参数中解析当前请求的模块、控制器和操作,下面是一个标准的URL访问格式:

http://domainName/index.php/模块/控制器/操作

其中index.php就称之为应用的入口文件(注意入口文件可以被隐藏,后面会提到)。

提示:



模块在ThinkPHP中的概念其实就是应用目录下面的子目录,而官方的规范是目录名小写,因此模块全部采用小写命名,无论URL是否开启大小写转换,模块名都会强制小写。

应用的index模块的Index控制器定义如下:

<?php

namespace app\index\controller;

class Index
{
    public function index()
    {
        return ‘index‘;
    }

    public function hello($name = ‘World‘)
    {
        return ‘Hello,‘ . $name . ‘!‘;
    }
}

如果我们直接访问入口文件的话,由于URL中没有模块、控制器和操作,因此系统会访问默认模块(index)下面的默认控制器(Index)的默认操作(index),因此下面的访问是等效的:

http://tp5.com/index.php
http://tp5.com/index.php/index/index/index

如果要访问控制器的hello方法,则需要使用完整的URL地址

http://tp5.com/index.php/index/index/hello/name/thinkphp

访问URL地址后页面输出结果为:

Hello,thinkphp!

由于name参数为可选参数,因此也可以使用

http://tp5.com/index.php/index/index/hello

访问URL地址后页面输出结果为:

Hello,World!

默认情况下,URL地址中的控制器和操作名是不区分大小写的,因此下面的访问其实是等效的:

http://tp5.com/index.php/index/Index/Index
http://tp5.com/index.php/index/INDEX/INDEX

如果你的控制器是驼峰的,例如定义一个HelloWorld控制器(application/index/controller/HelloWorld.php):

<?php
namespace app\index\controller;

class HelloWorld
{
    public function index($name = ‘World‘)
    {
        return ‘Hello,‘ . $name . ‘!‘;
    }
}

正确的URL访问地址(该地址可以使用url方法生成)应该是:

http://tp5.com/index.php/index/hello_world/index

系统会自动定位到HelloWorld控制器类去操作。

如果使用

http://tp5.com/index.php/index/HelloWorld/index

将会报错,并提示Helloworld控制器类不存在。

如果希望严格区分大小写访问(这样就可以支持驼峰法进行控制器访问),可以在应用配置文件中设置:

// 关闭URL自动转换(支持驼峰访问控制器)
‘url_convert‘ => false,

关闭URL自动转换之后,必须使用下面的URL地址访问(控制器名称必须严格使用控制器类的名称,不包含控制器后缀):

http://tp5.com/index.php/index/Index/index
http://tp5.com/index.php/index/HelloWorld/index

提示:



操作方法的访问本身不会受URL自动转换的影响,但会影响默认的模板渲染输出。

如果你的服务器环境不支持pathinfo方式的URL访问,可以使用兼容方式,例如:

http://tp5.com/index.php?s=/index/Index/index

其中变量s的名称的可以配置的。

5.0不再支持普通的URL访问方式,所以下面的访问是无效的,你会发现无论输入什么,访问的都是默认的控制器和操作^_^

http://tp5.com/index.php?m=index&c=Index&a=hello

原文地址:https://www.cnblogs.com/xu1115/p/10977601.html

时间: 2024-07-29 01:07:28

thinkPHP URL访问的相关文章

ThinkPHP CodeIgniter URL访问举例

ThinkPHP URL访问: http://localhost/think/index.php/Home/login/func/[name/syt/password/123/] http://localhost/think/index.php/Home/login/func?id=10007&name=yjz&sex=M Codeigniter URL访问: http://localhost/citest/index.php/login?name=syt&id=10001&

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视频教程2.ThinkPHP 3.1.2 MVC模式和URL访问

## ThinkPHP 3 MVC模式和URL访问#讲师:赵桐正微博:http://weibo.com/zhaotongzheng 本节课大纲:一.什么是MVC                 //了解    M -Model 编写model类 对数据进行操作    V -View  编写html文件,页面呈现    C -Controller 编写类文件(UserAction.class.php)二.ThinkPHP的MVC特点         //了解三.ThinkPHP的MVC对应的目录 

ThinkPHP中URL访问模式详解

一.ThinkPHP中支持的四种URL访问模式                                                   所谓URL访问模式,指的是以哪种形式的URL地址访问网站. URL访问模式的意义在于:可以让网站中的所有链接有一个统一的格式. URL访问模式 URL模式 URL_MODEL设置 示例 普通模式 0 http://localhost/?m=home&c=user&a=login&var=value PATHINFO模式 1 http:/

thinkPHP四种URL访问方式(二)

原文:thinkPHP四种URL访问方式(二) 四.url的4种访问方式 1.PATHINFO 模式 -- (重点) http://域名/项目名/入口文件/模块名/方法名/键1/值1/键2/值2 http://localhost/thinkphp/index.php/Index/index http://localhost/thinkphp/index.php/Index/add/name/leyangjun   ---传参(也支持通用的模式?name=leyangjun) 2.普通模式 htt

ThinkPHP 3 MVC模式和URL访问

一.什么是MVC                 //了解    M -Model 编写model类 对数据进行操作    V -View  编写html文件,页面呈现    C -Controller 编写类文件(UserAction.class.php)二.ThinkPHP的MVC特点         //了解三.ThinkPHP的MVC对应的目录   //了解    M 项目目录/应用目录/Lib/Model    V 项目目录/应用目录/Tpl    C 项目目录/应用目录/Lib/Ac

ThinkPHP 怎样让URL访问的时候省略 index.php

ThinkPHP 怎样让URL访问的时候省略 index.php Nginx 服务器配置 修改 nginx.conf 文件 location / { // …..省略部分代码 if (!-e $request_filename) { rewrite ^(.*)$ /index.php?s=/$1 last; } } 原来的访问URL: http://serverName/index.php/模块/控制器/操作/[参数名/参数值...] 设置后,我们可以采用下面的方式访问: http://serv

【ThinkPHP】TP-四种url访问的方式_URL_MODEL

TP-四种url访问的方式 'URL_MODEL' => 1, URL访问模式,可选参数0.1.2.3,代表以下四种模式: 0 (普通模式); 1 (PATHINFO 模式);  /*默认*/ 2 (REWRITE 模式); 3 (兼容模式) 0:http://localhost/index.php?m=模块&c=控制器&a=操作方法     [get模式] 1:http://localhost/index.php/模块[模块文件夹]/控制器/操作方法    [pathinfo模式]

ThinkPHP URL 路由功能详解与实例

本节内容导读 本节内容主要介绍 ThinkPHP 路由功能与 U方法的使用,分为下面几个部分: ThinkPHP URL 路由功能详解:见本页下面文字 ThinkPHP 正则路由与实例 ThinkPHP U方法:使用U方法自动生成URL超链接 ThinkPHP 3.0 版本的路由功能较 2.x 版本有较大的变更,如果您的版本是 2.x,请参阅下面的文档: ThinkPHP 2.0 URL 路由(2.0版本适用) ThinkPHP 泛路由使用详解(2.0版本适用) ThinkPHP 2.1 路由规