关于多域名绑定,不想通过Nginx设置伪静态有什么好的方案?

Madman

关于多域名绑定,已经有很多讨论了,但我觉得通过Nginx去设置伪静态是不完美的.
https://www.workerman.net/q/11427 这个解决方案我也看过了,但改源码存在覆盖的问题,也不是很好的选择.

有没有一种办法能在config/route.php这个配置文件里获取到当前host然后通过host分配不同的路由规则?
我想实现的代码好下:

<?php

use Webman\Route;

$host = request()->host();

// 主站
if ($host == 'www.domain.com' || 'domain.com') {
    /** 这里是主站的路由配置 */

    Route::disableDefaultRoute();
}

// 手机
if ($host == 'm.domain.com') {
    /** 这里是手机站的路由配置 */

    Route::disableDefaultRoute();
}

// 后台
if ($host == 'admin.domain.com') {
    /** 这里是后台的路由配置 */
}

但实际上这里的 $host = request()->host();是会报错的,请问有什么解决方案吗?

633 4 1
4个回答

six

就用帖子里 https://www.workerman.net/q/11427 的方法就行,改support\Request.php 类,这个类是空类,升级不会被覆盖。

  • Madman 2024-02-15

    好吧 谢谢 那就用这方法吧

Madman

又出现新问题了,这样一来自定义路由好像又失效了...

  • 暂无评论
owenzhang
  • Madman 2024-02-18

    这个就是通过 Nginx 配置的,我想通过路由功能实现...

不败少龙

这个插件 https://www.workerman.net/plugin/11 可以看看

  • Madman 2024-02-18

    这个插件还是得配合 Nginx

×
🔝