2015-12-08 36 views
0

我創建了一箇中間件,可根據用戶的帳戶類型將用戶重定向到特定的子域。如何重定向到laravel 5.1中的特定子域?

我想阻止基本用戶訪問管理子域並將其重定向回其主頁。

我已經試過這樣:

if($user->isAccountType('basic')){ 
    return Redirect::to('basic.myapp.app/home'); 
} 

return $next($request); 

但所發生的一切是laravel將嘗試重定向到admin.myapp.app/basic.myapp.app/home。

是否有可能將它們重定向到basic.myapp.app/home?

+0

你有沒有嘗試絕對路徑..?即,你的完整子域用'http://'? –

回答

1

預先協議:

if($user->isAccountType('basic')){ 
    return Redirect::to('http://basic.myapp.app/home'); 
} 

return $next($request); 

與其將您的子域硬編碼到您的中間件或控制器中,我會將它們放置在配置中以便易於配置。

+0

這工作。謝謝。將很快將它放入配置中。只需要快速啓動並運行測試。 –

0

你試過這個嗎?

if($user->isAccountType('basic')){ 
    return Redirect::to('/basic.myapp.app/home'); 
} 

return $next($request); 

使用命名的路由也是一個不錯的選擇

+0

這也將重定向到'admin.myapp.app/basic.myapp.app/home' – tommy

0

嘗試使用指定的路由重定向,這將很好地工作:

return redirect()->route('route.name'); 

要獲得航線名稱,使用下面的工匠命令:

php artisan route:list