【问题标题】:laravel main domain route is taking precedence over dynamic subdomainlaravel 主域路由优先于动态子域
【发布时间】:2019-12-23 15:48:53
【问题描述】:

我正在开发一个 Laravel 项目,并构建了一个功能来创建动态子域,这真的很好。这是路线的代码。

Route::group(['domain' => '{subdomain}.{domain}.{ext}'], function($subdomain)
{ 
    Route::get('/', 'UserController@userPage')->name('userPage');
    Route::post('/', 'UserController@userPageSave')->name('userPageSave');

});

子域工作正常,但只要我尝试访问主域,它就会优先于子域

Route::get('/', function() {
    return view('general.homepage');
});

所以我把这个主路由代码然后我不能再访问子域了。子域现在基本上显示主域中的任何内容.. 令人沮丧。

【问题讨论】:

  • 写下两种情况下访问的url(主域和子域)

标签: php laravel wildcard-subdomain


【解决方案1】:

来自 laravel 文档 https://laravel.com/docs/5.8/routing#route-group-sub-domain-routing

为了确保您的子域路由可达,您应该在注册根域路由之前先注册子域路由。这将防止根域路由覆盖具有相同 URI 路径的子域路由。

【讨论】:

    【解决方案2】:

    来自 laravel 8。 https://laravel.com/docs/7.x/routing#route-group-subdomain-routing

    为了确保您的子域路由可达,您应该在注册根域路由之前注册子域路由。这将防止根域路由覆盖具有相同 URI 路径的子域路由。

    如果您不理解上述引用的含义,因为这基本上是这种情况下的问题,这意味着您将子域路由放置(注册)在任何根域路由的正上方。

    你应该做什么:

    //Rooot Domain route(s)
        Route::get('/', function () {
        return view('welcome'); 
    });
    
    //Sub Domain route(s)
    
    Route::domain('admin.site')->group(function () {
          Route::get('/', function () {
            return "I will only trigger when domain is admin.site.";
        });
    });
    

    你应该做什么

    
    //Sub Domain route(s)
    
    Route::domain('admin.site')->group(function () {
          Route::get('/', function () {
            return "I will only trigger when domain is admin.site.";
        });
    });
    
    //Root Domain route(s)
        Route::get('/', function () {
        return view('welcome'); 
    });
    

    【讨论】:

      猜你喜欢
      • 2017-01-29
      • 1970-01-01
      • 2017-10-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-08
      • 1970-01-01
      • 2020-01-04
      相关资源
      最近更新 更多