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安装
- 系统安装composer https://pkg.phpcomposer.com/#how-to-install-composer
- 使用composer安装ThinkPHP,:
composer create-project topthink/think name-of-your-project
- 或者,下载tp6的压缩包: https://download.csdn.net/download/qq285744011/23268342
- 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开启多应用
- cd /D/www/tp6.com/
- rm -R app/* [删掉根目录下的app目录下的所有文件]
- composer require topthink/think-multi-app
- php think build {Name-of-APP-1}
- php think build {Name-of-APP-2}
- 修改/config/app.php的“default_app”为自建的app名称
TP6替换admin等app名字
修改/config/app.php,修改应用映射:
// 应用映射(自动多应用模式有效)
'app_map' => ['backend' => 'admin'],
这样,backend就会替代admin
TP6短网址路由配置(同一个app下,缩短网址)
目标
短网址 | 实际网址 | 步骤 | |
1 | tp6.com/ | tp6.com/home/index/showHome/ | 1.增加app\\home\\controller\\Index.php一个新方法
2. 新增route文件app\\home\\route\\any-name.php,内容为
|
2 | tp6.com/backend | tp6.com/admin/ | /config/app.php,修改应用映射 |
3 | tp6.com/home/plus | tp6.com/home/student/plus |
|
4 | tp6.com/news | tp6.com/home/index/news | 这个很难,因为多应用下route路由设置比较容易乱,具体请看本文的最下面部分“多应用下单参数路由” |
特别注意
- 最好控制器里面方法名字 都是大写字母开头,不然好多奇奇怪怪的问题!
- 关于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
步骤
- 复制控制器app\\home\\controller\\Index.php为app\\home\\controller\\Ccc.php
- 修改Ccc.php的类名为Ccc
- 在Ccc.php中类Ccc里面新增方法news(),具体如下:
<?php declare (strict_types = 1); namespace app\\home\\controller; class Ccc { public function News () { return __FILE__ . ' [line] '.__LINE__ . ' [FN] '.__FUNCTION__; } }
- 确认http://tp6.com/home/ccc/news可以访问
- 配置路由文件app\\home\\route\\home2.php,修改为
<?php use think\\facade\\Route; Route::get('news', 'home/ccc/news');
- 最重要的一步,修改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就不会被当前路由设置影响到。
- ok,测试!
- 没问题
Good Luck!
以上是关于ThinkPHP 6 安装短网址路由配置 (v6.0.9)的主要内容,如果未能解决你的问题,请参考以下文章