1.简化路由【一方面可以更好的让搜索引擎抓取;另一方面简化路由,利于记忆】

1-1.在【public/】下面创建admin.php 复制index.php 然后绑定前后台模块define('BIND_MODEL','admin')和define('BIND_MODEL',index')

eg:http://ww:7070/tp5-2/public/admin和http://ww:7070/tp5-2/public/index

1-2. 隐藏入口文件

开启Apache的配置文件,将LoadModule rewrite_module modules/mod_rewrite.so前面的注释去掉

eg:http://ww:7070/tp5-2/public/index/index

1-3.隐藏public,将index.php入口文件放在根目录下,并且修改相对路径

2.路由

2-1.关闭后台模块的路由:public/admin后面写 【\think\app:route(false)】

2-2.路由模式,修改config.php  [url_route_on和url_route_must]

2-3.修改route.php来修改路由

2-3-1.静态路由 eg:http://ww:7070/tp5-2/

use \think\Route;
Route::rule('/','admin/index/index'); 

2-3-2.动态静态组合

2-3-3.所有路由

<?php
//配置文件注册方式
//return [
// '__pattern__' => [
// 'name' => '\w+',
// ],
// '[hello]' => [
// ':id' => ['Index/hello', ['method' => 'get'], ['id' => '\d+']],
// ':name' => ['Index/hello', ['method' => 'post']],
// ],
//
//];
use think\Route;
Route::rule('/','Index/Index/index1');
Route::rule('canshu/:id','Index/Index/canshu');//带一个参数
Route::rule('time/:year/:month','Index/Index/time');//带两个个参数
Route::rule('kexuan/:year/[:month]','Index/Index/kexuan');//带两可选参数
Route::rule(':a/:b','Index/Index/dongtai');//全动态路由[不建议用]
Route::rule('wanquan$','Index/Index/wanquan');//全动态路由[不建议用] //设定路由类型
// Route::rule('type','Index/Index/type','post|get');//即支持get又2支持post //支持所有 //Route::rule('type','Index/Index/type','*');//支持所有
//Route::any('type','Index/Index/type');//支持所有 //put请求
//Route::rule('type','Index/Index/type','put'); //批量注册
//Route::rule([
// 'd1'=>'admin/index/test1',
// 'd2'=>'admin/index/test2'
//],'','get');
Route::get([
'd1'=>'admin/index/test1',
'd2'=>'admin/index/test2'
]); //路由规则
Route::rule('d3/:id','admin/index/test3','get',[],['id'=>'\s+']);//参数必须是数字
//Route::rule('d3/:id','admin/index/test3',[],['id'=>'\d{1,3}']);//参数必须是数字1-3位 //资源路由 会默认注册七个路由规则 index
Route::resource('myblog','index/myblog'); //快捷路由
//Route::controller('myblog','index/myblog');

3.路由地址生成 eg:http://ww:7070/tp5-2/public/myblog

tp5总结(二)的更多相关文章

  1. php(tp5) 生成二维码

    phpqrcode类库官网下载地址:https://sourceforge.net/projects/phpqrcode/ 1.我们先看看php是怎么生成二维码的 1.首先我们先下载一下  phpqr ...

  2. TP5 生成二维码

    首先下载这个类:http://phpqrcode.sourceforge.net/ 把下载的文件放到vendor下面 public function getWchatQrcode($users_id= ...

  3. tp3.x和tp 5的区别

    由于TP5.0是一个全新的颠覆重构版本,所以现在面试很多面试官喜欢问TP3.2和TP5之间的区别,那他们之间到底有哪些区别呢?一.目录  TP5目录 二.需要摒弃的 3.X 旧思想 模型的变动     ...

  4. TP5学习基础二:目录结构、URL路由、数据操作

    一.安装1.使用git或者composer(composer update)进行实时更新,区别在于git不会清空核心框架目录而composer会清空.2.使用官网打包好的TP压缩包(解压即可用)-&g ...

  5. 百度编辑器前后端二开图片上传Js Thinkphp tp5 ueditor

    百度编辑器图片上传Jsueditor.all.min.js 下载链接 链接:https://pan.baidu.com/s/1VNgw9ELgRRHKeCQheFkQTw 提取码:fnfi 使用方法: ...

  6. tp5生成小程序推广二维码

    //获取用户经销商信息 及生成推广二维码 public function qrcode() { //拿到openid 查找用户表内是否有该用户 没有则拒绝生成二维码 有则查看是否已生成二维码 有生成则 ...

  7. tp5 thinkphp 使用phpqrcode生成带Logo的二维码

    1 下载生成二维码类库 composer require aferrandini/phpqrcode 2 点击按钮下载 //二维码下载 public function down_qrcode() { ...

  8. TP5.0源生Excel导出

    PHPExcel类在TP5里边并不能很好的兼容,使用起来很麻烦. 不像是tp3.2那样直接import()加进来就能new,因为它里边的命名空间找不到.总是说undefined class. 如果是使 ...

  9. tp5框架的获取器

    tp5的获取器功能很强大,一下子就喜欢上了,你可以在模块里任意定义表里不存在的字段,在前台调用很方便.话不多说直接上demo: 1.命名规则   get + 属性名的驼峰命名+ Attr 直接就能在m ...

随机推荐

  1. layoutSubviews何时被调用

    layoutSubviews在以下情况下会被调用: 1.init初始化不会触发layoutSubviews 但是是用initWithFrame 进行初始化时,当rect的值不为CGRectZero时, ...

  2. 科学计算三维可视化---TraitsUI(配置视图)

    配置视图 模态窗口: from traits.api import HasTraits,Int,Strclass ModelManager(HasTraits): model_name = Str c ...

  3. 【官方文档】Nginx负载均衡学习笔记(二)负载均衡基本概念介绍

    简介 负载均衡(Server Load Balancer)是将访问流量根据转发策略分发到后端多台 ECS 的流量分发控制服务.负载均衡可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应 ...

  4. 获取assets文件内容,raw内容

    1.均采用流的方式获取里面的内容 assets context.getAssets().open(“fileName”); raw InputStream inputStream = context. ...

  5. spring——获取ClassLoader

    org.springframework.util包下的ClassUtils类有个静态方法:getDefaultClassLoader() 可以获取当前类加载器,如下: public static Cl ...

  6. 【bzoj4942】[Noi2017]整数 压位+线段树

    题目描述 P 博士将他的计算任务抽象为对一个整数的操作. 具体来说,有一个整数 $x$ ,一开始为0. 接下来有 $n$ 个操作,每个操作都是以下两种类型中的一种: 1 a b :将 $x$ 加上整数 ...

  7. JVM性能调优监控工具详解

    现实企业级Java开发中,有时候我们会碰到下面这些问题: OutOfMemoryError,内存不足 内存泄露 线程死锁 锁争用(Lock Contention) Java进程消耗CPU过高 .... ...

  8. ECMAScript 6中的var,let,const

    var的变量提升 console.log(a); //输出undefined ; 他的实际执行顺序是: var a: console.log(a); a= 这就是var的变量提升 const命令的用法 ...

  9. os._exit(), sys.exit(), exit()

    1. sys.exit(n) 退出程序引发SystemExit异常, 可以捕获异常执行些清理工作. n默认值为0, 表示正常退出. 其他都是非正常退出. 还可以sys.exit("sorry ...

  10. 在c++中实现反射的初步想法

    最近在思考如何在c++中实现反射.事情的起因是这样的:我们服务器是用c++开发的,如果需要写一些测试用的GM指令的话,需要编写完GM代码后重新编译并且重启进程,工序繁琐且比较耗时.因此就有了想用脚本( ...