When I open test.example.com/main
I expect a 404 error because this route is not defined in subdomain routes. but main domain routes works for subdomain. So route Route::get('/main' ...
runs and looks valid while it must not be valid.
My routes/web.php
:
Route::domain('test.example.com') -> group(function () {
Route::get('/sub', function(){
return view('sub.index');
});
});
Route::get('/main', function(){
return view('main.index');
})
i don't have much experince with laravel, but i think the problem is that main
route is begin set to match all domains while /sub
route is inside the subdomain group, so i guess you have 2 options
1 - group each domain routes together :
<?php
Route::domain('test.example.org') -> group(function () {
Route::get('/sub', function(){
return view('sub.index');
});
});
Route::domain('www.example.org') -> group(function () {
Route::get('/main', function(){
return view('main.index');
});
});
2 - create a middleware domain
to check the host and return 404 page if the host doesn't match ( i guess the first option would be better )
<?php
Route::get('/main', function(){
return view('main.index');
})->middleware('domain');