Laravel Tenancy for Laravel租户关联central_domains域名本地无法访问如何解决
排查步骤
1. 检查本地hosts文件配置
- Homestead环境下所有自定义域名都需要提前在本地hosts文件中指向Homestead虚拟机IP,默认IP通常为
192.168.10.10,你需要将domains表中所有租户域名都单独添加hosts记录,比如租户域名为shop.test,就新增一行:192.168.10.10 shop.test - 不要仅配置主域名
multi.test,所有租户域名都需要单独配置hosts。
2. 检查Homestead站点配置
- 打开
Homestead.yaml配置文件,确认站点配置没有限制仅匹配主域名,推荐使用泛域名匹配配置,参考:sites: - map: '*.test' to: /home/vagrant/你的项目路径/public - 如果之前仅配置了
map: multi.test,修改完成后需要执行vagrant reload --provision重启虚拟机加载新配置。 - 你当前配置的
central_domains仅包含顶级域test是符合要求的,不需要额外添加租户域名到该配置项。
3. 检查Tenancy包路由规则
- 确认需要租户识别的业务路由已经放到
routes/tenant.php文件中,而非默认的web.php文件。 - 执行
php artisan route:list命令检查租户路由是否正常注册,确认访问租户域名时的404报错是路由未匹配还是租户识别失败导致。
4. 验证租户识别逻辑
- 执行
php artisan tenancy:list命令,查看输出的租户和对应域名是否和domains表数据一致。 - 在
routes/tenant.php中添加临时测试代码验证识别是否生效:
访问租户域名如果可以输出对应租户ID,说明租户识别逻辑正常,问题出在业务路由配置;如果输出为空或者跳转到中心域名,说明域名匹配规则异常,可检查Route::get('/', function () { return tenant('id'); });config/tenancy.php中的域名识别配置是否开启。
5. 清理应用缓存
- 执行以下命令清理Laravel缓存,避免旧配置未更新:
php artisan config:clear php artisan route:clear php artisan cache:clear
内容的提问来源于stack exchange,提问作者Zeeshan Ali
相关产品推荐
相关产品推荐

