一、路由应用场景(前台要,后台不要):前台全部人均可以看,因此前台的话设置路由,后台的话并非全部人都进去,因此不须要设置路由 php
二、模块分离来实现路由场景应用:先后台模块分离以后,就能够分别设置是否须要使用路由thinkphp
三、模块绑定来实现模块分离:例如前台模块绑定为index.php,后台模块绑定为admin.phpapache
四、隐藏入口文件:前台隐藏入口文件能够简化path_info(url路径长度),很是有必要数组
五、路由的设置(配置规则、键值对):路由的设置只须要的路由的那个配置文件中加路由规则,很简单,就是键值对的形式Route::rule('test','index/index/test');app
六、路由的三种模式:路由的三种模式就是路由和path_info的三种混合方式框架
注意点:iview
一、路由的另外做用():有利于搜索引擎优化ide
二、隐藏入口文件操做:隐藏入口文件是须要修改apach的配置的学习
三、隐藏入口文件的原理:隐藏入口文件的原理是正则替换,也就是访问没有文件的时候加上入口文件RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]优化
四、路由范围:路由只针对应用,不针对模块,所以路由的设置也是针对应用下面的全部模块。
五、路由和path_info:要注意好像设置路由以后,就不能使用pathinfo访问了
延伸:
后面要基于个人项目写一个 路由实例 的文章出来
一、路由做用:
一、简化URL地址,方便你们记忆
二、有利于搜索引擎优化
二、入口文件:
一、先后台分离
a、在网站public目录下(C:\AppServ\www\tp5\public) 新建admin.php
b、打开admin.php
<?php
// 定义应用目录
define('APP_PATH', __DIR__ . '/../application/');
// 加载框架引导文件
require __DIR__ . '/../thinkphp/start.php';
二、绑定模块
一、实现功能
index.php 这个入口文件 只能去前台模块
admin.php 这个入口文件 只能去后台模块 #建议后台的入口文件稍微复杂一些
二、如何实现
在入口文件中
define("BIND_MODULE",'index'); # 绑定前台模块
define("BIND_MODULE",'admin'); # 绑定后台模块
三、URL地址发生改变
一、入口绑定以前
http://www.tp.com/admin.php/模块/控制器/方法
二、入口绑定以后
http://www.tp.com/admin.php/控制器/方法
三、隐藏入口文件
一、开启apache的重写(C:\AppServ\Apache24\conf\httpd.conf)
# 把注释开启
LoadModule rewrite_module modules/mod_rewrite.so
二、设置访问权限 (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>
三、入口文件,在网站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>
四、重启服务
五、url地址变化
一、隐藏以前
http://www.tp.com/index.php/Index/test
二、隐藏以后
http://www.tp.com/Index/test
三、Tp5.0路由学习注意:
一、支持三种方式的URL解析规则
二、路由只针对应用,不针对模块,所以路由的设置也是针对应用下面的全部模块。
三、关闭后台模块,在后台入口文件(C:\AppServ\www\tp5\public)
// 定义应用目录
define('APP_PATH', __DIR__ . '/../application/');
// 绑定后台
define('BIND_MODULE','admin');
// 加载框架引导文件
require __DIR__ . '/../thinkphp/start.php';
// 关闭admin模块的路由
// 必须写到 加载框架引导文件 以后不然报错
\think\App::route(false);
四、路由模式
一、普通模式
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,
二、混合模式
a、定义:
开启路由,并使用路由定义+默认 PATH_INFO 方式的混合
b、如何设置
// 是否开启路由
'url_route_on' => true,
// 是否强制使用路由
'url_route_must' => false,
三、强制模式
一、定义:
开启路由,并设置必须定义路由才能访问
二、如何设置
// 是否开启路由
'url_route_on' => true,
// 是否强制使用路由
'url_route_must' => true,
五、设置路由-动态单个注册
0、设置路由格式
Route::rule('路由表达式','路由地址','请求类型','路由参数(数组)','变量规则(数组)')
一、设置路由文件
C:\AppServ\www\tp5\application\route.php
二、如何设置
// 引入系统类
use think\Route;
// 定义路由规则
// 设置路由以后,就不能使用pathinfo访问了
// 注册路由 访问到Index模块index控制器index方法
Route::rule('/','index/index/index');
// 注册路由test 访问到Index模块index控制器test方法
Route::rule('test','index/index/test');
三、路由的形式
一、静态地址路由
// 注册路由test 访问到Index模块index控制器test方法
Route::rule('test','index/index/test');
一、路由做用:
一、简化URL地址,方便你们记忆
二、有利于搜索引擎优化
二、入口文件:
一、先后台分离
a、在网站public目录下(C:\AppServ\www\tp5\public) 新建admin.php
b、打开admin.php
<?php
// 定义应用目录
define('APP_PATH', __DIR__ . '/../application/');
// 加载框架引导文件
require __DIR__ . '/../thinkphp/start.php';
二、绑定模块
一、实现功能
index.php 这个入口文件 只能去前台模块
admin.php 这个入口文件 只能去后台模块 #建议后台的入口文件稍微复杂一些
二、如何实现
在入口文件中
define("BIND_MODULE",'index'); # 绑定前台模块
define("BIND_MODULE",'admin'); # 绑定后台模块
三、URL地址发生改变
一、入口绑定以前
http://www.tp.com/admin.php/模块/控制器/方法
二、入口绑定以后
http://www.tp.com/admin.php/控制器/方法
三、隐藏入口文件
一、开启apache的重写(C:\AppServ\Apache24\conf\httpd.conf)
# 把注释开启
LoadModule rewrite_module modules/mod_rewrite.so
二、设置访问权限 (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>
三、入口文件,在网站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>
四、重启服务
五、url地址变化
一、隐藏以前
http://www.tp.com/index.php/Index/test
二、隐藏以后
http://www.tp.com/Index/test
三、Tp5.0路由学习注意:
一、支持三种方式的URL解析规则
二、路由只针对应用,不针对模块,所以路由的设置也是针对应用下面的全部模块。
三、关闭后台模块,在后台入口文件(C:\AppServ\www\tp5\public)
// 定义应用目录
define('APP_PATH', __DIR__ . '/../application/');
// 绑定后台
define('BIND_MODULE','admin');
// 加载框架引导文件
require __DIR__ . '/../thinkphp/start.php';
// 关闭admin模块的路由
// 必须写到 加载框架引导文件 以后不然报错
\think\App::route(false);
四、路由模式
一、普通模式
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,
二、混合模式
a、定义:
开启路由,并使用路由定义+默认 PATH_INFO 方式的混合
b、如何设置
// 是否开启路由
'url_route_on' => true,
// 是否强制使用路由
'url_route_must' => false,
三、强制模式
一、定义:
开启路由,并设置必须定义路由才能访问
二、如何设置
// 是否开启路由
'url_route_on' => true,
// 是否强制使用路由
'url_route_must' => true,
五、设置路由-动态单个注册
0、设置路由格式
Route::rule('路由表达式','路由地址','请求类型','路由参数(数组)','变量规则(数组)')
一、设置路由文件
C:\AppServ\www\tp5\application\route.php
二、如何设置
// 引入系统类
use think\Route;
// 定义路由规则
// 设置路由以后,就不能使用pathinfo访问了
// 注册路由 访问到Index模块index控制器index方法
Route::rule('/','index/index/index');
// 注册路由test 访问到Index模块index控制器test方法
Route::rule('test','index/index/test');
三、路由的形式
一、静态地址路由
// 注册路由test 访问到Index模块index控制器test方法
Route::rule('test','index/index/test');