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最简单路由的更多相关文章

  1. 自学PHP的第22天---ThinkPHP中的路由、ThinkPHP目录结构

    这一切的一切都得从“Hello world”说起!!! 有很多东西在thinkPHP的官方开发文档上其实都有讲到,我在这里只是想记录自己每天坚持学习PHP的情况,今天接触ThinkPHP的路由,路由这 ...

  2. Javascript实现前端简单路由

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta http ...

  3. Thinkphp的自定义路由(route.php)

    废话:因为thinkphp的默认路由会导致URL特别长,从而会影响搜索引擎优化.所以就衍生了自定义路由,尽量将URL缩短. 这是默认的路由文件: <?php return [ '__patter ...

  4. 修改route.php文件对ThinkPHP快速注册路由

    THINKPHP快速注册路由方式可以用 return[ "test"=>"index/index/demo", 'getid/:id'=>'inde ...

  5. vue.js路由vue-router(一)——简单路由基础

    前言 vue.js除了拥有组件开发体系之外,还有自己的路由vue-router.在没有使用路由之前,我们页面的跳转要么是后台进行管控,要么是用a标签写链接.使用vue-router后,我们可以自己定义 ...

  6. thinkphp动态注册路由

    thinkphp动态注册路由 一.总结 1.thinkphp使用路由步骤:a.config配置文件中开启路由  b.Route类的rule方法创建路由(在Routephp中)Route::rule(' ...

  7. 用javascript来实现前端简单路由

    WEB开发中路由概念并不陌生,我们接触到的有前端路由和后端路由.后端路由在很多框架中是一个重要的模块,如Thinkphp,Wordpress中都应用了路由功能,它能够让请求的url地址变得更简洁.同样 ...

  8. ThinkPHP - URL - 伪静态 - 路由 - 重写

    URL: 一.URL规则 1.默认是区分大小写,可以修改(配置文件)为不区分大小写. 2. //修改URL大小写问题 'URL_CASE_INSENSITIVE' =>true, 如果模块名为 ...

  9. JS简单路由实现

    说一下前端路由实现的简要原理,以 hash 形式(也可以使用 History API 来处理)为例, 当 url 的 hash 发生变化时,触发 hashchange 注册的回调,回调中去进行不同的操 ...

随机推荐

  1. POJ1158 城市交通Traffic lights IOI 1999 (最短路)

    POJ1158 城市交通Traffic lights IOI 1999 (最短路) (1) 问题描述(probolem) 在d城里交通的安排不同寻常,城中有路口和路口之间的道路,再任意两个不同的路口之 ...

  2. java钩子函数

    也不知道我理解的对不对,欢迎大家讨论! 自己写了个钩子函数,我理解的钩子函数: public interface Transactioner { String wedontknow() ; } pub ...

  3. mysql生成随机时间

    mysql> update test set create_time=concat('2013-10-01 ', floor(10+rand()*10),':',floor(10+rand()* ...

  4. sublime配置python

    Sublime Text 2作为一款轻量级的编辑器,特点鲜明.方便使用,愈发受到普罗大众的喜爱.我个人近期也開始用了起来.同一时候,我近段时间还在学习Python的相关东西.所以開始用ST2来写Pyt ...

  5. BZOJ 1002 FJOI 2007 轮状病毒 暴力+找规律+高精度

    题目大意: 思路:基尔霍夫矩阵求生成树个数,不会. 可是能够暴力打表.(我才不会说我调试force调试了20分钟... CODE(force.cc): #include <cstdio> ...

  6. iOS多线程与网络开发之多线程GCD

    郝萌主倾心贡献,尊重作者的劳动成果.请勿转载. 假设文章对您有所帮助,欢迎给作者捐赠.支持郝萌主.捐赠数额任意.重在心意^_^ 我要捐赠: 点击捐赠 Cocos2d-X源代码下载:点我传送 游戏官方下 ...

  7. CXF实战之在Tomcat中公布Web Service(二)

    服务接口及实现类请參考WebService框架CXF实战(一) 创建Maven Web项目,在pom.xml中加入CXF和Spring Web的引用,因为CXFServlet须要Spring Web的 ...

  8. shell 脚本去掉月份和天数的前导零

    #!/bin/sh # # shell 脚本去掉月份和天数的前导零 # 前面填 1 变成百位数,然后减 100 # 去掉前导零的通用方法 $((10#$(date +%m))) # 把字符串分割成数组 ...

  9. vue2.0 vue-loader

    vue-cli npm install 脚手架: vue-loader 1.0 -> new Vue({ el: '#app', components:{App} }) 2.0-> new ...

  10. Android View体系(十)自定义组合控件

    相关文章 Android View体系(一)视图坐标系 Android View体系(二)实现View滑动的六种方法 Android View体系(三)属性动画 Android View体系(四)从源 ...