【问题标题】:Redirect from a subdomain route to root route从子域路由重定向到根路由
【发布时间】:2018-10-22 09:26:10
【问题描述】:

我有2组路由,域保存在HOST的env文件中,第一组可以example.com访问,第二组应该使用somesubdomain.example.com,这个工作,问题是当我从subdomains route 重定向到root routes 时,subdomain 仍然存在,所以root route 不会进入,我尝试使用named routes,但它重定向到localhost/dashboard,即xampp 仪表板。

//root routes
Route::namespace('Main')->domain(env('HOST'))->group(function(){
    Route::get('/','Home\HomeController@getMain')->name('inicio');//i have tried to name the route but this just redirect to localhost/dashboard
});
//subdomain routes
Route::namespace('Stores')->domain('{subdomain}.'.env('HOST'))->group(function(){
    Route::get('/',function(){
        return redirect()->route('inicio');
    });
});

如果不是redirect 我使用return 'foo'; 代替return 'foo';,这两条路线都有效,它在拥有子域时显示 foo,而在没有子域时返回视图。

如何删除子域并重定向到路由?

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    我认为解决方案可能是不带任何参数且不带绝对 URL 的情况下重定向到命名路由,例如:

    //root routes
    Route::namespace('Main')->domain(env('HOST'))->group(function(){
        Route::get('/','Home\HomeController@getMain')->name('inicio');
    });
    //subdomain routes
    Route::namespace('Stores')->domain('{subdomain}.'.env('HOST'))->group(function(){
        Route::get('/',function(){
            return redirect()->to(route('inicio', [], false);
        });
    });
    

    唯一的变化是重定向应该看起来像:

    return redirect()->to(route('inicio', [], false);
    

    第一个参数是命名路由,第二个参数包括任何参数(在这种情况下没有),第三个指定 URL 是否应该是绝对的。

    我手头没有测试这个的环境,但希望它是一个适合你的解决方案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-17
      • 2017-08-10
      • 2015-05-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多