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'); }); 避免重复代码并添加其他环境变量. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |