如何在路由根据域名来加载不同的路由文件

比如
我有三个域名,a.com b.com c.com
还有一个主域名 test.com

// 我想在访问test.com的时候走这个路由,如果这里不成立就走下面的路由
Route::domain('test.com')->group(function () {
   // 这里加载路由 include 'test.php';
});

// 意思是a.com  b.com  c.com 都走这里
Route::domain('{webname}.{suffix}')->group(function () {
   // 这里加载其他路由 include 'other.php';
});

我以为这个domain是判断来源域名的意思,然而我测试了多次,它并不是,因为不管什么域名访问,都会执行第一个;
我在这困扰许久,也百度谷歌了,然而并没有找到解决方案;

我要这么做的原因是,我这里是多站点模式。
test.com是我的主站,
a.com b.com c.com 都是我的分站。
我的分站访问的时候加载other.php路由文件。
主站是访问的时候加载主路由文件。

请不要让我使用ServiceProvider,因为我不是子域,我来源域名是未知的,我已知的只有主域,别的都是未知,所以不能使用ServiceProvider来进行操作;
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
最佳答案

我这边测试了一下,这样写没问题

Route::domain('www.test.app')->group(__DIR__ . '/1.php');
Route::domain('{name}.{domain}.{ext}')->group(__DIR__ . '/2.php');

// 1.php
Route::get('/', function(){
  return '1.php'; 
});

// 2.php
Route::get('/', function(){
  return '2.php'; 
});

当访问 www.test.app 会输出 1.php

当用其它域名 比如 www.test1.app 会输出 2.php

3年前 评论
hackxiaoya (楼主) 3年前
畅畅 (作者) 3年前
hackxiaoya (楼主) 3年前
畅畅 (作者) 3年前
讨论数量: 2

指定顶级域名即可

Route::domain('{webname}.com')->group(function () {

});
3年前 评论
hackxiaoya (楼主) 3年前
未定义 (作者) 3年前

我这边测试了一下,这样写没问题

Route::domain('www.test.app')->group(__DIR__ . '/1.php');
Route::domain('{name}.{domain}.{ext}')->group(__DIR__ . '/2.php');

// 1.php
Route::get('/', function(){
  return '1.php'; 
});

// 2.php
Route::get('/', function(){
  return '2.php'; 
});

当访问 www.test.app 会输出 1.php

当用其它域名 比如 www.test1.app 会输出 2.php

3年前 评论
hackxiaoya (楼主) 3年前
畅畅 (作者) 3年前
hackxiaoya (楼主) 3年前
畅畅 (作者) 3年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!