J'essaie d'avoir un sous-domaine admin ( comme ceci )
Route::group(['domain' => 'admin.localhost'], function () {
Route::get('/', function () {
return view('welcome');
});
});
mais admin.localhost agit exactement comme localhost . Comment je suis censé le faire correctement?
J'utilise Laravel 5.1 et MAMP sous OSX
Laravel traite les itinéraires selon le principe du premier arrivé, premier servi. Par conséquent, vous devez placer vos itinéraires les moins spécifiques en dernier dans le fichier des itinéraires. Cela signifie que vous devez placer votre groupe de routes au-dessus de toutes les routes ayant le même chemin.
Par exemple, cela fonctionnera comme prévu:
Route::group(['domain' => 'admin.localhost'], function () {
Route::get('/', function () {
return "This will respond to requests for 'admin.localhost/'";
});
});
Route::get('/', function () {
return "This will respond to all other '/' requests.";
});
Mais cet exemple ne va pas:
Route::get('/', function () {
return "This will respond to all '/' requests before the route group gets processed.";
});
Route::group(['domain' => 'admin.localhost'], function () {
Route::get('/', function () {
return "This will never be called";
});
});
L'exemple de Laravel ...
Route::group(['domain' => '{account}.myapp.com'], function () {
Route::get('user/{id}', function ($account, $id) {
//
});
});
Votre code
Route::group(['domain' => 'admin.localhost'], function () {
Route::get('/', function () {
return view('welcome');
});
});
Si vous regardez l'exemple laravel, il obtient le paramètre $account
dans la route, nous pouvons ainsi router en fonction de cette variable. Ceci peut ensuite être appliqué au groupe ou à n'importe quel itinéraire.
Cela dit, si ce n’est pas quelque chose qui dépend de votre base de données et que vous le voulez simplement avec le sous-domaine admin, je le ferais personnellement comme une configuration nginx.
Si vous souhaitez tester nginx localement (plus facilement), j’ai personnellement recommandé de faire du développement avec docker.
J'espère que cela répond à votre question, si vous ne le savez pas, essayez de répondre à votre place.