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

前端之家收集整理的这篇文章主要介绍了php – 生产和开发中的Laravel域路由前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个使用子域路由的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');
});

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

猜你在找的Laravel相关文章