TP5.0入口文件和路由模式

2025-06-11 10:42:07

1、路由的作用 简化URL地址,方便大家记忆 有利于搜索引擎的优化

TP5.0入口文件和路由模式

2、入口文件 1、前后台分离 在网站public目录下(根目录\public)新建admin.php 打开admin.php <?php // [ 应用入口文件 ] // 定义应用目录 define('APP_PATH', __DIR__ . '/../application/'); // 加载框架引导文件 require __DIR__ . '/../thinkphp/start.php'; 2、绑定模块 实现功能 index.php 只能进前台模块 admin.php 只能进后台模块 如何实现 在入口文件中 define('BIND_MODULE','admin');后台模块 后台入口文件名复杂一些 防止别人进入 define('BIND_MODULE','index');前台模块 URL地址 绑定之前:http://www.tp5.net/index.php/模块/控制器/方法 绑定之后:http://www.tp5.net/index.php/控制器/方法 3、隐藏入口文件 开启apache重写(conf/httpd.conf) LoadModule rewrite_module modules/mod_rewrite.so 设置访问权限( AllowOverride All (none改成all)) <VirtualHost *:80> DocumentRoot "D:\phpStudy\WWW\tp5\public" ServerName www.tp5.net ServerAlias tp5.net <Directory "D:\phpStudy\WWW\tp5\public"> Options FollowSymLinks ExecCGI AllowOverride All Order allow,deny Allow from all Require all granted </Directory> </VirtualHost> 入口文件放一个.htaccess <IfModule mod_rewrite.c> Options +FollowSymlinks RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php?s=$1 [QSA,PT,L] </IfModule> 重启服务 URL地址 隐藏之前:http://www.tp5.net/index.php/模块/控制器/方法 隐藏之后:http://www.tp5.net/控制器/方法

TP5.0入口文件和路由模式
TP5.0入口文件和路由模式

3、tp5.0路由学习 1、支持三种路由规则 2、路由只针对应用,不针对模块,因此路由的设置也是针对应用下面的所有模块。 3、如果某些模块不想使用路由的话,关闭路由 在后台入口文件中增加关闭路由配置(必须写在 加载引导文件之后) \think\App::route(false);

TP5.0入口文件和路由模式

4、路由 1、普通模式 定义:关闭路由,完全使用默认的PATH_INFO方式URL 形式:http://www.tp5.net/index.php/模块/控制器/方法 如何设置:// 是否开启路由 'url_route_on' => false, // 是否强制使用路由 'url_route_must' => false, 2、混合模式 定义:开启路由,并使用路由定义+默认PATH_INFO方式的混合 如何设置:// 是否开启路由 'url_route_on' => true, // 是否强制使用路由 'url_route_must' => false, 3、强制模式 定义:开启路由,并设置必须定义路由才能访问 如何设置:// 是否开启路由 'url_route_on' => true, // 是否强制使用路由 'url_route_must' => true,

TP5.0入口文件和路由模式

5、设置路由颍骈城茇-动态单个注册 设置路由文件(根目录\application\route.php) 如何设置: 设置路由之后就不能使用PATH_INFO形式访问 use think\Rout髫潋啜缅e; Route::rule('/','index/index/index'); Route::rule('getconfig','index/index/getconfig'); 路由的形式: 静态地址路由:Route::rule('getconfig','index/index/getconfig'); 路由带参数:Route::rule('num/:id','index/index/num'); Route::rule('time/:year/:month','index/index/time'); //(两个参数,只要有一个没有写就会报错) 可选参数路由:Route::rule('time/:year/[:month]','index/index/time'); 全动态路由:Route::rule(':a/:b','index/index/time'); 完全匹配路由:Route::rule('test$','index/index/test'); //http://www.tp5.net/test 可以成功访问 //http://www.tp5.net/num/4 不能成功访问 额外带参数:Route::rule('test','index/index/test?status=1&app_id=5'); //用input()打印参数 请求类型: TP中的请求类型:get,post,put,delete Route::rule()默认支持所有请求类型 Route::rule('num','index/index/num','get'); Route::get('num','index/index/num'); // 定义GET请求路由规则 Route::post('new/:id','News/update'); // 定义POST请求路由规则 Route::put('new/:id','News/update'); // 定义PUT请求路由规则 Route::delete('new/:id','News/delete'); // 定义DELETE请求路由规则 Route::rule('num','index/index/num','*'); Route::any('new/:id','News/read'); // 所有请求都支持的路由规则

TP5.0入口文件和路由模式

6、设置路由-咿蛙匆盗动态批量注册 基本格式: Route::rule([ '路由规则1'=>'路由地址和参数', '路由规则2'=媪青怍牙>['路由地址和参数','匹配参数(数组)', '变量规则(数组)'] ... ],'', '请求类型','匹配参数(数组)','变量规则'); 使用: Route::rule([ 'test'=>'index/index/test', 'num/:id'=>'index/index/num' ],'','get'); Route::get([ 'test'=>'index/index/test', 'num/:id'=>'index/index/num' ]);

TP5.0入口文件和路由模式

7、设置路由-配置文件批量注册 return [ 'new/:id' => 'News/read', 'blog/:id' => ['Blog/update',['method' => 'post|put'], ['id' => '\d+']], ];

TP5.0入口文件和路由模式

8、变量规则 Route::rule('num','index/index/num',get',[],['id'=>'\d+']);

TP5.0入口文件和路由模式

9、路由参数 ext 路由后缀 method 访问方法 Route::rule('num','index/index/num',get',[‘method'=>'get','ext'=>'html'],['id'=>'\d+']);

TP5.0入口文件和路由模式

10、资源路由 声明:Route::resource('blog','index/blog'); 会自动注册七个路由规则

TP5.0入口文件和路由模式

11、快捷路由 声明:// 给User控制器设置快捷路由 Route::controller('user','index/User'); 使用:get http://localhost/user/info 找控制器中的getinfo方法

TP5.0入口文件和路由模式

12、生成url地址 系统类 Url::build('地址表达式',['参数'],['URL后缀'],['域名']) 系统方法 url('地址表达式',['参数'],['URL后缀'],['域名'])

TP5.0入口文件和路由模式
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢