laravel一个规则内是否支持多个子域名?

我们都知道laravel的路由支持子域名。如下

Route::group(array('domain' => '{account}.local.com'), function()
{

    Route::get('user/{id}', function($account, $id)
    {
        //
    });

});

但是我现在碰到一个问题,求就是本地开发环境、测试环境和线上生产环境是不同的子域名。
比如说:

  • 线下:account.local.com

  • 测试:account.test.com

  • 生成:account.production.com

我除了写三遍路由规则意外。不知道有没有让一个路由规则中同时支持这3个子域名的方法?

Route::group(array('domain' => '{account}.local.com'), function()
{

    // route

});

Route::group(array('domain' => '{account}.test.com'), function()
{

    // route

});

Route::group(array('domain' => '{account}.production.com'), function()
{

    // route

});

-------------------------------分割线-----------------------------------------

如下就可以了。

Route::group(array('domain' => 'account.{env}.com'), function()
{

    // route

});

因为我还有其他域名,不想混合通用route所以就需要区分开

Route::group(array('domain' => 'help.{env}.com'), function()
{

    // route

});
阅读 9.5k
3 个回答

三个环境的路由配置不需要配置domain,只要你三个域名都是指向Laravel,自然就共用了

是可以支持的,你自己测试了没?

也可以在配置文件里面做区分

Route::group(array('domain' => env('DOMAIN')), function()
{

    // route

});

.env

DOMAIN=xxx.xxx.com
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏