ThinkPHP路由简单配置

  ThinkPHP拥有丰富的路由配置功能,灵活的配置路由可以更好的优化URL结构,方便维护,下面简单介绍一下ThinkPHP路由配置方法。

  ThinkPHP默认路由结构为/入口文件/应用/控制器/方法,因此就产生了这样一长串的URL结构:

https://127.0.0.2/index.php/index/index/index

  这还仅仅是首页URL,这样的结构显然不利于维护,更不利于SEO,所以需要做路由配置,以多应用为例,新建/app/index/route/route.php,写入如下代码:

use think\facade\Route;

// 首页
Route::rule('/', 'index/index');
// page是后台定义的分页变量,这里是实现前台首页分页路由配置
Route::get('page-:page$', 'index/index')->pattern(['page' => '\d+']);

  配置后就可以用下面地址访问首页了,是不是简洁多了

https://127.0.0.2/

  继续配置,原新闻内容页的URL如下,也是长长的一串:

https://127.0.0.2/index.php/index/index/100

  在route.php中继续写代码:

// 新闻内容页
Route::get(':id$', 'news/index')->pattern(['id' => '\d+']);

  然后访问地址就变成了:

https://127.0.0.2/100

  继续配置栏目页,原URL如下:

https://127.0.0.2/index.php/index/index/pc

  继续写代码:

// 动态栏目
Route::get(':colname/page-:page$', 'columns/index')->pattern([
    'colname' => '[a-zA-Z0-9_]+',
    'page'   => '\d+'
]);
Route::get('/:colname$', 'columns/index');

  然后访问地址就变成了:

https://127.0.0.2/pc

  以上路由配置后就实现了URL访问的简化,首页和栏目页的分页功能同样有效。

本站原创内容,转载请注明来源:https://www.liutonghui.com/311

FC游戏网十周年
上一篇 2025-01-01
拍照打卡很肤浅?长春西游乐园的火爆自有道理
下一篇 2025-08-09

评论列表(0条)

  • 暂无评论

发表评论

captcha

相关推荐

  • PHP使用内置函数处理JSON数据

      JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,通常用于在前端和后端之间传递数据。在PHP中,你可以使用内置的函数来处理JSON数据,实现数据的编码和解码。   以下是PHP中JSON的一些常见应用:   1. 编码(PHP对象转为JSON字符串)   使用 json_encode() 函数可以将PHP对象转换为JSON格式的字符串: $data = array( 'name' =......

    2013-10-09
    16770
  • PHP图片验证码功能简单开发

      验证码是网站开发中常用的功能,可以保证用户提交数据和服务器的安全,验证码的形态也是千奇百怪,从传统的数字+字母,到拼图,再到找元素等等越来越复杂。   今天说一下用PHP原生开发方式如何写一个最常见的数字+字母图片验证码功能,过程非常简单。   首先创建验证码生成文件verify.php <?php // 开启session session_start(); // 创建图片资源,宽高 $img = imagecreatetru......

    2014-08-02
    21060
  • ThinkPHP数据库操作(Db)与模型操作(Model)区别

      Db类数据操作:性能略高一些,语法简单直观,但是不支持自动处理数据,自动验证,关联查询等功能,适合简单数据操作。 use think\facade\Db; // 查询 Db::table('user')->where('id', 1)->find(); // 新增 Db::table('user')->insert([ 'name' => '张三', 'age' => 20 ]); ......

    2019-12-02
    18290
  • ThinkPHP数据软删除及数据恢复功能

      ThinkPHP的软删除不是真正删除数据库数据,而是通过标记字段(如delete_time)记录删除状态,查询时自动过滤delete_time字段已标记删除的数据,支持数据恢复和真实删除,相当于为项目加了一个回收站功能,以避免数据被误删。   软删除依赖模型操作,不支持原生查询,需要数据表有删除标记字段(默认delete_time,类型:datetime/timestamp,允许null),需要引入ThinkPHP内置的SoftDe......

    2022-01-27
    10700
  • ThinkPHP文件上传类FileSystem自定义生成年月日目录

      FileSystem 是一个非常好用的文件上传扩展类,结合 Thinkphp 使用可以轻松的完成文件上传功能的开发。但是默认情况下 FileSystem 是按照“年月日”来生成上传日期目录的,长期使用下来就会有大量的“Ymd”目录,不方便管理,像我平时更新内容不多,如果以“Ym”的格式生成目录,按同一年同一月上传的文件放在一个日期目录中就方便管理多了。   需要......

    2023-04-23
    10342
  • 虚拟主机部署ThinkPHP项目设置public目录方法

      ThinkPHP默认必须要设置public目录为运行目录才可以成功运行项目,但是如果使用的是虚拟主机无法设置运行目录怎么办?而最稳妥的方法是移动public目录到根目录并修正路径。   先看 TP8 原版 public/index.php <?php // +---------------------------------------------------------------------- // | ThinkPHP ......

    2023-09-09
    13440
  • ThinkPHP多入口文件多应用设置方法

      在使用ThinkPHP做项目开发时,为了让架构更清晰科学,提高安全和性能,方便维护,需要将多应用分配到各自对应的不同的入口文件上,而不是整个项目用一个入口文件。   此方法适用于ThinkPHP6/8,这是ThinkPHP默认的单应用结构: ├─app 应用目录 │ ├─controller 控制器目录 │ ├─model 模型目录 │ ├─view 视图目......

    2024-03-31
    8280
  • ThinkPHP获取数据库类型和版本的方法

      在开发后台功能时,可能会需要自动获取当前使用的数据库类型和版本的情况,下面就举个简单的例子实现自动获取当前项目使用的是MySQL还是SQLite数据库及使用的相应数据库版本的方法: // 数据库类型 $default = config('database.default'); $config = config('database.connections.' . $default); $db_type = strtolower(tri......

    2024-11-02
    8890