博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
thinkphp最简单路由
阅读量:5757 次
发布时间:2019-06-18

本文共 5628 字,大约阅读时间需要 18 分钟。

thinkphp最简单路由

一、总结

1、路由应用场景(前台要,后台不要):前台所有人都可以看,所以前台的话设置路由,后台的话并不是所有人都进去,所以不需要设置路由 

2、模块分离来实现路由场景应用:前后台模块分离之后,就可以分别设置是否需要使用路由

3、模块绑定来实现模块分离:例如前台模块绑定为index.php,后台模块绑定为admin.php

4、隐藏入口文件:前台隐藏入口文件可以简化path_info(url路径长度),非常有必要

5、路由的设置配置规则、键值对):路由的设置只需要的路由的那个配置文件中加路由规则,很简单,就是键值对的形式Route::rule('test','index/index/test');

6、路由的三种模式:路由的三种模式就是路由和path_info的三种混合方式

 

注意点:

1、路由的另外作用():有利于搜索引擎优化

2、隐藏入口文件操作:隐藏入口文件是需要修改apach的配置的

3、隐藏入口文件的原理:隐藏入口文件的原理是正则替换,也就是访问没有文件的时候加上入口文件RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]

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

5、路由和path_info:要注意好像设置路由之后,就不能使用pathinfo访问了

 

延伸:

后面要基于我的项目写一个 路由实例 的文章出来

 

二、php动态路由注册

1、路由作用:

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

 

         2、有利于搜索引擎优化

 

2、入口文件:

        

         1、前后台分离

 

                   a、在网站public目录下(C:\AppServ\www\tp5\public) 新建admin.php

 

                   b、打开admin.php

                            <?php

                            // 定义应用目录

                            define('APP_PATH', __DIR__ . '/../application/');

                            // 加载框架引导文件

                            require __DIR__ . '/../thinkphp/start.php';

 

         2、绑定模块

                   1、实现功能

                            index.php 这个入口文件 只能去前台模块

                            admin.php 这个入口文件 只能去后台模块 #建议后台的入口文件稍微复杂一些

 

                   2、如何实现

                            在入口文件中

 

                            define("BIND_MODULE",'index'); # 绑定前台模块

                            define("BIND_MODULE",'admin'); # 绑定后台模块

 

                   3、URL地址发生改变

                            1、入口绑定之前

                                     http://www.tp.com/admin.php/模块/控制器/方法

                            2、入口绑定之后

                                     http://www.tp.com/admin.php/控制器/方法

 

         3、隐藏入口文件

                   1、开启apache的重写(C:\AppServ\Apache24\conf\httpd.conf)

                            # 把注释开启

                            LoadModule rewrite_module modules/mod_rewrite.so

 

                   2、设置访问权限 (C:\AppServ\Apache24\conf\extra\httpd-vhosts.conf)

 

                            <VirtualHost *:80>

                                DocumentRoot "C:\AppServ\www\tp5\public"

                                ServerName www.tp5.com

                                     <Directory "C:\AppServ\www\tp5\public">

                                       

                                         Options Indexes FollowSymLinks

                                        

                                         AllowOverride All

 

                                         Require all granted

                                     </Directory>

                            </VirtualHost>

 

                   3、入口文件,在网站public目录下新建.htaccess 文件

         原理是正则

                            <IfModule mod_rewrite.c>

                              Options +FollowSymlinks -Multiviews

                              RewriteEngine On

 

                              RewriteCond %{REQUEST_FILENAME} !-d

                              RewriteCond %{REQUEST_FILENAME} !-f

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

                            </IfModule>

 

                   4、重启服务

 

                   5、url地址变化

                            1、隐藏之前

                                     http://www.tp.com/index.php/Index/test

                            2、隐藏之后

                                     http://www.tp.com/Index/test

 

3、Tp5.0路由学习注意:

         1、支持三种方式URL解析规则

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

         3、关闭后台模块,在后台入口文件(C:\AppServ\www\tp5\public)

 

                   // 定义应用目录

                   define('APP_PATH', __DIR__ . '/../application/');

                   // 绑定后台

                   define('BIND_MODULE','admin');

                   // 加载框架引导文件

                   require __DIR__ . '/../thinkphp/start.php';

                   // 关闭admin模块的路由

                   // 必须写到 加载框架引导文件 之后否则报错

                   \think\App::route(false);

 

4、路由模式

 

         1、普通模式

                   a、定义

                            关闭路由,完全使用默认的 PATH_INFO 方式URL:

 

                   b、形式

                            http://www.tp.com/admin.php/index/index

 

                   c、如何设置

        在application下面的config.php的配置文件中

                            // 是否开启路由

                            'url_route_on'           => false,

                            // 是否强制使用路由

                            'url_route_must'         => false,

 

         2、混合模式

                   a、定义:

                            开启路由,并使用路由定义+默认 PATH_INFO 方式的混合

 

                   b、如何设置

                            // 是否开启路由

                            'url_route_on'           => true,

                            // 是否强制使用路由

                            'url_route_must'         => false,

        

         3、强制模式

                   1、定义:

                            开启路由,并设置必须定义路由才能访问

 

                   2、如何设置

                            // 是否开启路由

                            'url_route_on'           => true,

                            // 是否强制使用路由

                            'url_route_must'         => true,

 

 

5、设置路由-动态单个注册

         0、设置路由格式

                   Route::rule('路由表达式','路由地址','请求类型','路由参数(数组)','变量规则(数组)')

         1、设置路由文件

                   C:\AppServ\www\tp5\application\route.php

 

         2、如何设置

 

                   // 引入系统类

                   use think\Route;

                   // 定义路由规则

                   // 设置路由之后,就不能使用pathinfo访问了

                   // 注册路由 访问到Index模块index控制器index方法

                   Route::rule('/','index/index/index');

                   // 注册路由test 访问到Index模块index控制器test方法

                   Route::rule('test','index/index/test');

 

         3、路由的形式

                   1、静态地址路由

                            // 注册路由test 访问到Index模块index控制器test方法

                            Route::rule('test','index/index/test');

 

1、路由作用:

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

 

         2、有利于搜索引擎优化

 

2、入口文件:

        

         1、前后台分离

 

                   a、在网站public目录下(C:\AppServ\www\tp5\public) 新建admin.php

 

                   b、打开admin.php

                            <?php

                            // 定义应用目录

                            define('APP_PATH', __DIR__ . '/../application/');

                            // 加载框架引导文件

                            require __DIR__ . '/../thinkphp/start.php';

 

         2、绑定模块

                   1、实现功能

                            index.php 这个入口文件 只能去前台模块

                            admin.php 这个入口文件 只能去后台模块 #建议后台的入口文件稍微复杂一些

 

                   2、如何实现

                            在入口文件中

 

                            define("BIND_MODULE",'index'); # 绑定前台模块

                            define("BIND_MODULE",'admin'); # 绑定后台模块

 

                   3、URL地址发生改变

                            1、入口绑定之前

                                     http://www.tp.com/admin.php/模块/控制器/方法

                            2、入口绑定之后

                                     http://www.tp.com/admin.php/控制器/方法

 

         3、隐藏入口文件

                   1、开启apache的重写(C:\AppServ\Apache24\conf\httpd.conf)

                            # 把注释开启

                            LoadModule rewrite_module modules/mod_rewrite.so

 

                   2、设置访问权限 (C:\AppServ\Apache24\conf\extra\httpd-vhosts.conf)

 

                            <VirtualHost *:80>

                                DocumentRoot "C:\AppServ\www\tp5\public"

                                ServerName www.tp5.com

                                     <Directory "C:\AppServ\www\tp5\public">

                                       

                                         Options Indexes FollowSymLinks

                                        

                                         AllowOverride All

 

                                         Require all granted

                                     </Directory>

                            </VirtualHost>

 

                   3、入口文件,在网站public目录下新建.htaccess 文件

         原理是正则

                            <IfModule mod_rewrite.c>

                              Options +FollowSymlinks -Multiviews

                              RewriteEngine On

 

                              RewriteCond %{REQUEST_FILENAME} !-d

                              RewriteCond %{REQUEST_FILENAME} !-f

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

                            </IfModule>

 

                   4、重启服务

 

                   5、url地址变化

                            1、隐藏之前

                                     http://www.tp.com/index.php/Index/test

                            2、隐藏之后

                                     http://www.tp.com/Index/test

 

3、Tp5.0路由学习注意:

         1、支持三种方式URL解析规则

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

         3、关闭后台模块,在后台入口文件(C:\AppServ\www\tp5\public)

 

                   // 定义应用目录

                   define('APP_PATH', __DIR__ . '/../application/');

                   // 绑定后台

                   define('BIND_MODULE','admin');

                   // 加载框架引导文件

                   require __DIR__ . '/../thinkphp/start.php';

                   // 关闭admin模块的路由

                   // 必须写到 加载框架引导文件 之后否则报错

                   \think\App::route(false);

 

4、路由模式

 

         1、普通模式

                   a、定义

                            关闭路由,完全使用默认的 PATH_INFO 方式URL:

 

                   b、形式

                            http://www.tp.com/admin.php/index/index

 

                   c、如何设置

        在application下面的config.php的配置文件中

                            // 是否开启路由

                            'url_route_on'           => false,

                            // 是否强制使用路由

                            'url_route_must'         => false,

 

         2、混合模式

                   a、定义:

                            开启路由,并使用路由定义+默认 PATH_INFO 方式的混合

 

                   b、如何设置

                            // 是否开启路由

                            'url_route_on'           => true,

                            // 是否强制使用路由

                            'url_route_must'         => false,

        

         3、强制模式

                   1、定义:

                            开启路由,并设置必须定义路由才能访问

 

                   2、如何设置

                            // 是否开启路由

                            'url_route_on'           => true,

                            // 是否强制使用路由

                            'url_route_must'         => true,

 

 

5、设置路由-动态单个注册

         0、设置路由格式

                   Route::rule('路由表达式','路由地址','请求类型','路由参数(数组)','变量规则(数组)')

         1、设置路由文件

                   C:\AppServ\www\tp5\application\route.php

 

         2、如何设置

 

                   // 引入系统类

                   use think\Route;

                   // 定义路由规则

                   // 设置路由之后,就不能使用pathinfo访问了

                   // 注册路由 访问到Index模块index控制器index方法

                   Route::rule('/','index/index/index');

                   // 注册路由test 访问到Index模块index控制器test方法

                   Route::rule('test','index/index/test');

 

         3、路由的形式

                   1、静态地址路由

                            // 注册路由test 访问到Index模块index控制器test方法

                            Route::rule('test','index/index/test');

 

转载地址:http://ybvkx.baihongyu.com/

你可能感兴趣的文章
JS 原生ajax写法
查看>>
Composer管理PHP依赖关系
查看>>
React.js学习笔记之JSX解读
查看>>
我所了解的Libevent和SEDA架构
查看>>
Socket编程问题小记
查看>>
基于Flask-Angular的项目组网架构与部署
查看>>
一张图道尽程序员的出路
查看>>
redis 常用命令
查看>>
LVS+Keepalived高可用负载均衡集群架构
查看>>
烂泥:kvm安装windows系统蓝屏
查看>>
iPhone开发面试题--葵花宝典
查看>>
EdbMails Convert EDB to PST
查看>>
POJ 2184
查看>>
大话 程序猿 眼里的 接口
查看>>
struts2用了哪几种模式
查看>>
replace函数结合正则表达式实现转化成驼峰与转化成连接字符串的方法
查看>>
ubuntu 初学常用命令
查看>>
WCF客户端与服务端通信简单入门教程
查看>>
android 资源种类及使用
查看>>
Explorer程序出错
查看>>