【问题标题】:Laravel 5.2: Filter route group based on the domain nameLaravel 5.2:根据域名过滤路由组
【发布时间】:2016-07-28 01:58:08
【问题描述】:

我有一个应用程序,它使用多个域: 1.主域 2. 站点不同部分的域(每个用户可以为自己的页面拥有一个域,保存在 user_profile 中)。

我需要一个路由组,我希望它只可用于主域,以及一个可用于其他域的其他组。第一组不可用于其他域,第二组不可用于主域。我该如何实施?

中间件是解决方案吗?如何在中间件中访问当前域?

感谢您的帮助!

【问题讨论】:

    标签: php routes laravel-5.2 middleware


    【解决方案1】:

    这将返回当前主机,可以在您的中间件中使用:

    $request->server->get('HTTP_HOST')

    您实际上可以只使用一个路由组,例如(在您的 routes.php 中):

    Route::group(['domain' => '{sitedomain}'], function()
    {
        // routes here
    
    })->where('sitedomain', '.+\.your_domain_regex\.com$');
    

    【讨论】:

    • 如果与域不匹配,我可以抛出 abort('404') ?
    • @Zoli 查看我更新的答案,您可以使用路由组来实现。
    • 这在控制器中也可用吗? $request->server->get('HTTP_HOST')
    • @Zoli 您可以在控制器中使用use Illuminate\Http\Request; 并将Request $request 注入您的方法中,例如:public function index(Request $request) { dd($request->server->get('HTTP_HOST')); }
    猜你喜欢
    • 2014-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-17
    • 2017-03-12
    • 2016-08-23
    • 2018-09-12
    相关资源
    最近更新 更多