ThinkPHP 6 安装短网址路由配置 (v6.0.9)

Posted Rudon滨海渔村

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ThinkPHP 6 安装短网址路由配置 (v6.0.9)相关的知识,希望对你有一定的参考价值。

TP6手册 

序言 · Thinkphp6.0完全开发手册 · 看云ThinkPHP`6.0`基于精简核心和统一用法两大原则在`5.1`的基础上对底层架构做了进一步的优化改进,并更加规范化。 https://www.kancloud.cn/manual/thinkphp6_0/1037479

TP6安装

  1. 系统安装composer   https://pkg.phpcomposer.com/#how-to-install-composer
  2. 使用composer安装ThinkPHP,:
    composer create-project topthink/think name-of-your-project
  3. 或者,下载tp6的压缩包: https://download.csdn.net/download/qq285744011/23268342
  4. web服务器设置访问tp6根目录下的public目录即可

查看TP6的版本

cd /D/www/tp6.com/
php think version
显示v6.0.9

TP6隐藏index.php

1.Nginx 设置web服务器nginx的伪静态为

location / {
  if (!-e $request_filename){
    rewrite ^(.*)$ /index.php?s=$1 last; break;
  }
}

如图:

2.Apache
修改/public/.htaccess文件,找到:
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
在index.php后面加一个问号,变成:
RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L]

详参 URL访问 · ThinkPHP6.0完全开发手册 · 看云

TP6开启多应用

  1. cd /D/www/tp6.com/
  2. rm -R app/*    [删掉根目录下的app目录下的所有文件]
  3. composer require topthink/think-multi-app
  4. php think build {Name-of-APP-1}
  5. php think build {Name-of-APP-2}
  6. 修改/config/app.php的“default_app”为自建的app名称

TP6替换admin等app名字

修改/config/app.php,修改应用映射:

// 应用映射(自动多应用模式有效)
 'app_map'          => ['backend' => 'admin'],

这样,backend就会替代admin

TP6短网址路由配置(同一个app下,缩短网址)

目标

短网址实际网址步骤
1tp6.com/

tp6.com/home/index/showHome/

1.增加app\\home\\controller\\Index.php一个新方法

public function ShowHome()

    {

        return 'home page from http://tp6.com/';

    }

2. 新增route文件app\\home\\route\\any-name.php,内容为

<?php

use think\\facade\\Route;

Route::get('/', 'home/index/showHome');

2tp6.com/backendtp6.com/admin//config/app.php,修改应用映射
3tp6.com/home/plustp6.com/home/student/plus
  1. 复制控制器app\\home\\controller\\Index.php为app\\home\\controller\\Student.php,修改class名为Student
  2. 为刚才的控制器增加一个方法
  3. public function plus () {

            return $_SERVER['REQUEST_URI'];

    }

  4. 新增route文件app\\home\\route\\hahaha.php,内容增加Route::get('plus', 'home/student/plus');
4tp6.com/newstp6.com/home/index/news这个很难,因为多应用下route路由设置比较容易乱,具体请看本文的最下面部分“多应用下单参数路由

特别注意

  1. 最好控制器里面方法名字 都是大写字母开头,不然好多奇奇怪怪的问题!
  2. 关于route配置文件,

1)如果是单应用模式,只需修改/route/*.php,名字随意,文件数量随意,反正都读取;
2)如果是多应用模式,需要各自在不同的应用目录下创建route目录,里面的route配置文件名字随意,格式为php,例如:
/app/home/route/home.php
/app/book/route/any.php
/app/book/route/222.php

格式

<?php
use think\\facade\\Route;
Route::get('/', function(){
    return 'Catched route "/"';
});

Route::get('plus', 'home/student/plus');

TP6多应用下单参数路由

目标:

http://tp6.com/news

可以访问到

http://tp6.com/home/ccc/news

步骤

  1. 复制控制器app\\home\\controller\\Index.php为app\\home\\controller\\Ccc.php
  2. 修改Ccc.php的类名为Ccc
  3. 在Ccc.php中类Ccc里面新增方法news(),具体如下:
    <?php
    declare (strict_types = 1);
    namespace app\\home\\controller;
    
    class Ccc
    {
        public function News () {
            return __FILE__ . ' [line] '.__LINE__ . ' [FN] '.__FUNCTION__;
        }
    }
    

  4. 确认http://tp6.com/home/ccc/news可以访问
  5. 配置路由文件app\\home\\route\\home2.php,修改为
    <?php
    use think\\facade\\Route;
    Route::get('news', 'home/ccc/news');
  6. 最重要的一步,修改public\\index.php,将"$response = $http->run();"修改为
    if (preg_match('/^\\/(common|admin|backend)\\//', $_SERVER['REQUEST_URI'])) {
        $response = $http->run();
    } else {
        $response = $http->name('home')->run();
    }

    其中,“common|admin|backend”是除去当前强制的app以外的模块名字,这样其他app就不会被当前路由设置影响到。

  7. ok,测试!
  8. 没问题

Good Luck!

以上是关于ThinkPHP 6 安装短网址路由配置 (v6.0.9)的主要内容,如果未能解决你的问题,请参考以下文章

Composer与ThinkPHP V6的下载与安装

ThinkPHP V6.0.7发布——修正版本

ThinkPHP框架实现rewrite路由配置

ThinkPHP V6开启多应用模式

thinkphp5.1 tp5.1 安装 初始化 配置 重写 url 路由 Rewrite

react-router路由之routerRender方法(v5 v6)