Tp5.0路由

1. 路由作用

  • 简化URL地址,方便大家记忆
  • 有利于搜索引擎优化

2. 入口文件

2.1 前后台分离

  • 在网站public目录下(\public) 新建admin.php
  • 打开admin.php
<?php
        // 定义应用目录
        define('APP_PATH', __DIR__ . '/../application/');
        // 加载框架引导文件
        require __DIR__ . '/../thinkphp/start.php';

2.2 在入口文件中,如何实现

define(“BIND_MODULE”,’index’); # index.php 绑定前台模块
define(“BIND_MODULE”,’admin’); # admin.php 绑定后台模块

2.3 URL地址发生改变

1、入口绑定之前
http://www.tp.com/admin.php/模块/控制器/方法
2、入口绑定之后
http://www.tp.com/admin.php/控制器/方法

2.4 隐藏入口文件

1、开启apache的重写(C:\AppServ\Apache24\conf\httpd.conf)
# 把注释开启
LoadModule rewrite_module modules/mod_rewrite.so

2、设置访问权限 (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、如何设置
        // 是否开启路由
        '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、设置路由-动态单个注册

  • 设置路由格式 : Route::rule(‘路由表达式’,’路由地址’,’请求类型’,’路由参数(数组)’,’变量规则(数组)’)
  • 设置路由文件: \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');

Add a Comment

电子邮件地址不会被公开。 必填项已用*标注