gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 00:19:32 25 4
gpt4 key购买 nike

我有一个正在运行的 Laravel 5.2 项目,该项目使用我在本地(宅基地)和生产环境中运行的子域路由(在 AWS 上配置了通配符子域路由)。我的本地项目有一个 admin.project.app 的主机文件条目并成功路由到 admin.project.app 而我的生产版本路由到 admin.project.com.

我的本​​地 .env 文件有变量 APP_ENV=local 而我在 forge 上的 .env 有变量 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'], function()
{
Route::get('/', 'HomeController@index');

});

}

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

最佳答案

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

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

避免重复代码并添加额外的环境变量。

关于php - 生产和开发中的 Laravel 域路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34999954/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com