加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

php – 生产和开发中的Laravel域路由

发布时间:2020-12-14 19:34:58 所属栏目:大数据 来源:网络整理
导读:我有一个使用子域路由的Laravel 5.2项目,我在本地(宅基地)和生产中运行(在AWS上使用通配符子域路由配置伪造).我的本地项目有一个admin.project.app的主机文件条目,并成功路由到admin.project.app,而我的生产版本路由到admin.project.com. 我的本地.env文件具
我有一个使用子域路由的Laravel 5.2项目,我在本地(宅基地)和生产中运行(在AWS上使用通配符子域路由配置伪造).我的本地项目有一个admin.project.app的主机文件条目,并成功路由到admin.project.app,而我的生产版本路由到admin.project.com.

我的本地.env文件具有变量APP_ENV = local而我的.env on forge具有变量APP_ENV = production.到现在为止还挺好.

我遇到的问题是,我希望Laravel根据我在本地运行(扩展名为.app)或生产(扩展名为.com)这一类型的通配符路由规则来解析域名:

Route::group(['domain' => 'admin.project.*'],function()
{
    Route::get('/','HomeController@index');

});

我遇到的问题是,Laravel,Ngnix,AWS或Forge要求我明确地这样做,这看起来完全是多余的:

if (App::environment('local')) {
    Route::group(['domain' => 'admin.project.app'],function()
    {
        Route::get('/','HomeController@index');

    });
}else{
    Route::group(['domain' => 'admin.project.com'],'HomeController@index');

    });

}

或者也许我的期望是错的;)任何关于我可能做错的指示都非常感谢!

解决方法

真正简单的解决方案是使用三元运算符来确定TLD并在组的域属性中使用它:

Route::group(['domain' => 'admin.project.' . ((env('APP_ENV') == 'production') ? 'com' : 'app')],'HomeController@index');
});

避免重复代码并添加其他环境变量.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读