ThinkPhp5绑定路由的一些小心得,子域名这样绑定路由模块也能够做到全绿
OrangeThinK 2019年04月29日 •  1
本文最后修改于 1816 天前,部分内容可能已经过时!

最近的捣鼓ThinkPhp5,然后想使得不同的模块绑定到不同的子域名上,发现TP5有个域名路由,然后在绑定的过程中发生了一些有趣的问题
(当然,绑定域名路由的前提当然是要把相应的域名解析并绑定该服务器,这是最基础的知识)

路由绑定原文教程

可以在应用的公共文件或者配置文件中动态注册域名部署规则,例如:
// blog子域名绑定到blog模块
Route::domain('blog','blog');
// 完整域名绑定到admin模块
Route::domain('admin.thinkphp.cn','admin');
// IP绑定到admin模块
Route::domain('114.23.4.5','admin');

补充说明
但是你在应用到公共文件application/common.php时,记得首先要引入

use think\Route;

绑定例子说明

假设我的域名是XXX.CN,我把想把admin.xxx.cn绑定admin模块,d绑定到device模块,xxx.cn直接绑到Index模块。

use think\Route;
Route::domain('xxx.cn','index');
Route::domain('admin','admin');
Route::domain('d','device');
return [
    '/:id$' => ['device/index/index', ['method' => 'get', 'ext' => '', 'domain'=>'d.xxx.cn']],
];

如果只是希望把某个子域名绑定到某个模块,只要在application/common.php公共文件这样简单配置即可

use think\Route;
Route::domain('子域名','绑定的模块名,注意只能小写');

子域名绑定路由模块绿锁

实际上就是通过开两个网站,分别绑定域名,但是网站目录是一样的(同一空间),上传对应的域名证书,达到绑定路由模块的子域名也能够绿锁的效果
首先是得申请一个免费的子域名的SSL,一般在阿里云购买的域名是可以直接申请免费的绿锁的
这里以宝塔为例,首先建立一个子域名的网站,绑定该子域名(相应的域名解析这里不多说)
第二步,在application/common.php公共文件配置路由绑定,上述教程有言
第三步,修改你该子域网站的网站目录与TP5路径一样(实绑定TP5同空间,非绑定模块目录路径)
第四步,在宝塔SSL上传该子域的证书文件,并开启强制HTTPS

如何理解MVC 打赏
请作者吃个鸡腿!
以往经济对比现在 增长从何而来

该页面评论已关闭

已有 1 条评论

 iherb 2019-05-04 • |

学习了