doukengzi3517 2018-02-12 11:00
浏览 37
已采纳

Laravel主域路由适用于子域

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');
})
  • 写回答

1条回答 默认 最新

  • dqcuq4138 2018-02-12 11:11
    关注

    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');
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?