我希望根据环境为我的应用程序提供不同的域名;
像这样; www.prod.co.uk
而www.dev.co.uk
现在,我route.php
已经定义了这样的子域名;
Route::group(['domain' => 'www.prod.co.uk'] Route::group(['domain' => 'blog.prod.co.uk'] Route::group(['domain' => 'careers.prod.co.uk']
在laravel
文档中,你可以访问env
基于什么你有你的.env
,我可以做类似下面的我route.php
?
Use App; if (App::environment('production')) { // The environment is local $domain = www.prod.co.uk; $subdomain1 = blog.prod.co.uk; $subdomain2 = careers.prod.co.uk; } if (App::environment('local', 'staging')) { // The environment is either local OR staging... $domain = www.dev.co.uk; $subdomain1 = blog.dev.co.uk; $subdomain2 = careers.dev.co.uk; } Route::group(['domain' => $domain] Route::group(['domain' => $subdomain1] Route::group(['domain' => $subdomain2]
Denis Mysenk.. 6
更好的(IMHO)方法是在.env文件中定义自定义域 - 这样很清楚域名是特定于环境的,并且不需要任何'ifs':
.ENV:
URL=www.dev.co.uk SUBDOMAIN1=blog.dev.co.uk SUBDOMAIN2=careers.dev.co.uk
然后添加到config/app.php:
'url' => env('URL'), 'subdomain1' => env('SUBDOMAIN1'), 'subdomain2' => env('SUBDOMAIN2'),
routes.php会变得更简单,更好读:
Route::group(['domain' => Config::get('app.url')] {} Route::group(['domain' => Config::get('app.subdomain1')] {} Route::group(['domain' => Config::get('app.subdomain2')] {}
PS.想象一下,如果你将来获得更多特定于环境的URL - 你的routes.php会变得臃肿,它会(它已经实际上)包含环境特定的数据,这是不好的!
更好的(IMHO)方法是在.env文件中定义自定义域 - 这样很清楚域名是特定于环境的,并且不需要任何'ifs':
.ENV:
URL=www.dev.co.uk SUBDOMAIN1=blog.dev.co.uk SUBDOMAIN2=careers.dev.co.uk
然后添加到config/app.php:
'url' => env('URL'), 'subdomain1' => env('SUBDOMAIN1'), 'subdomain2' => env('SUBDOMAIN2'),
routes.php会变得更简单,更好读:
Route::group(['domain' => Config::get('app.url')] {} Route::group(['domain' => Config::get('app.subdomain1')] {} Route::group(['domain' => Config::get('app.subdomain2')] {}
PS.想象一下,如果你将来获得更多特定于环境的URL - 你的routes.php会变得臃肿,它会(它已经实际上)包含环境特定的数据,这是不好的!