thinkphp最简单路由
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');
thinkphp最简单路由的更多相关文章
- 自学PHP的第22天---ThinkPHP中的路由、ThinkPHP目录结构
这一切的一切都得从“Hello world”说起!!! 有很多东西在thinkPHP的官方开发文档上其实都有讲到,我在这里只是想记录自己每天坚持学习PHP的情况,今天接触ThinkPHP的路由,路由这 ...
- Javascript实现前端简单路由
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta http ...
- Thinkphp的自定义路由(route.php)
废话:因为thinkphp的默认路由会导致URL特别长,从而会影响搜索引擎优化.所以就衍生了自定义路由,尽量将URL缩短. 这是默认的路由文件: <?php return [ '__patter ...
- 修改route.php文件对ThinkPHP快速注册路由
THINKPHP快速注册路由方式可以用 return[ "test"=>"index/index/demo", 'getid/:id'=>'inde ...
- vue.js路由vue-router(一)——简单路由基础
前言 vue.js除了拥有组件开发体系之外,还有自己的路由vue-router.在没有使用路由之前,我们页面的跳转要么是后台进行管控,要么是用a标签写链接.使用vue-router后,我们可以自己定义 ...
- thinkphp动态注册路由
thinkphp动态注册路由 一.总结 1.thinkphp使用路由步骤:a.config配置文件中开启路由 b.Route类的rule方法创建路由(在Routephp中)Route::rule(' ...
- 用javascript来实现前端简单路由
WEB开发中路由概念并不陌生,我们接触到的有前端路由和后端路由.后端路由在很多框架中是一个重要的模块,如Thinkphp,Wordpress中都应用了路由功能,它能够让请求的url地址变得更简洁.同样 ...
- ThinkPHP - URL - 伪静态 - 路由 - 重写
URL: 一.URL规则 1.默认是区分大小写,可以修改(配置文件)为不区分大小写. 2. //修改URL大小写问题 'URL_CASE_INSENSITIVE' =>true, 如果模块名为 ...
- JS简单路由实现
说一下前端路由实现的简要原理,以 hash 形式(也可以使用 History API 来处理)为例, 当 url 的 hash 发生变化时,触发 hashchange 注册的回调,回调中去进行不同的操 ...
随机推荐
- 【Educational Codeforces Round 37 B】 Tea Queue
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 用一个队列来模拟排队就好. 队列放三元组(x,y,z) x表示人的下标,y和z分别表示进入和退出时间. 然后枚举时间从1到5000 ...
- hadoop1.0.3学习笔记
回 到 目 录 最近要从网上抓取数据下来,然后hadoop来做存储和分析. 呆毛王赛高 月子酱赛高 小唯酱赛高 目录 安装hadoop1.0.3 HDFS wordcount mapreduce去重 ...
- django-xadmin使用之更改菜单url
环境:xadmin-for-python3 python3.5.2 django1.9.12 1. 在模块的adminx.py文件中增加以下代码: class AdminSettings(object ...
- ArcGIS api for javascript——地理编码任务-地理编码地址
描述 本例允许用户输入一个地址,然后显示匹配的地址的位置.这通常地被称为地理编码.在ArcGIS JavaScript API中,使用Locator类执行地理编码. 定位器构造函数需要ArcGIS S ...
- C++对象模型——效率有了,弹性呢(第七章)
7.4 效率有了,弹性呢 传统的C++对象模型提供有效率的运行期支持.这份效率,再加上与C之间的兼容性,造成了C++的广泛被接受度.然而,在某些领域方面,像是动态共享函数库(dynamicall ...
- 小贝_php+redis类型组合使用
php_redis类型组合使用 一.类型组合说明 经过前面的文章介绍.已经知道redis有字符串.集合.列表.hash等内置数据类型. 这里以,无序集合为例,进行说明. 集合 set1的简图 1.从简 ...
- FTP配置说明
1.下载rpm包,如vsftpd-3.0.2-21.el7.x86_64.rpm.可在系统盘里面找到或者下载 2.参考如下步骤.或者见链接http://blog.csdn.net/uq_jin/art ...
- P3908 异或之和
题目描述 求1 \bigoplus 2 \bigoplus\cdots\bigoplus N1⨁2⨁⋯⨁N 的值. A \bigoplus BA⨁B 即AA , BB 按位异或. 输入输出格式 输入格 ...
- Ubunut PPA源概述
Ubuntu 自带的“软件”应用,可以安装海量软件,既包括发行者支持的软件.社区支持的软件,也包括专有驱动和版权软件.有时,我们需要的软件通过这些渠道仍然无法找到.这时,可以到 PPA 软件源中查找. ...
- SWFupload多图片上传入门教程
本文为转载内容,但所讲内容亲身试验证明可用,转载过来希望能帮助到有需要的人. 转载地址:http://blog.csdn.net/kongjiea/article/details/24290373#c ...