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

2025-10-28 21:11:05

1、1、路由的作用

     简化URL地址,方便大家记忆

     有利于搜索引擎的优化

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

2、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、3、tp5.0路由学习

     1、支持三种路由规则

     2、路由只针对应用,不针对模块,因此路由的设置也是针对应用下面的所有模块。

     3、如果某些模块不想使用路由的话,关闭路由

          在后台入口文件中增加关闭路由配置(必须写在 加载引导文件之后)

          \think\App::route(false);

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

4、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、5、设置路由-动态单个注册

     设置路由文件(根目录\application\route.php)

     如何设置:   设置路由之后就不能使用PATH_INFO形式访问

                         use think\Route;

                         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、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、7、设置路由-配置文件批量注册

     return [ 

                  'new/:id'   => 'News/read',

                  'blog/:id'   => ['Blog/update',['method' => 'post|put'], ['id' => '\d+']],

                ];

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

8、8、变量规则

     Route::rule('num','index/index/num',get',[],['id'=>'\d+']);

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

9、9、路由参数

     ext 路由后缀 method 访问方法

     Route::rule('num','index/index/num',get',[‘method'=>'get','ext'=>'html'],['id'=>'\d+']);

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

10、10、资源路由

       声明:Route::resource('blog','index/blog');

       会自动注册七个路由规则

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

11、11、快捷路由

       声明:// 给User控制器设置快捷路由

                 Route::controller('user','index/User');

       使用:get http://localhost/user/info 找控制器中的getinfo方法

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

12、12、生成url地址

       系统类

       Url::build('地址表达式',['参数'],['URL后缀'],['域名'])

       系统方法

       url('地址表达式',['参数'],['URL后缀'],['域名'])

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

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