如何检查laravel中某些路由的域名?

时间:2018-01-07 10:33:35

标签: laravel laravel-5.2

我需要检查某些路线的域名。然后,经过检查,我需要在laravel中将https://two.com重定向到https://one.commiddleware

例如:

路线:

Route::get('/', ['as' => 'index', 'uses' => 'IndexController@index']);
Route::get('termsAndCondition', ['as' => 'termsAndCondition', 'uses' => 'IndexController@termsAndCondition']);
Route::get('aboutUs', ['as' => 'aboutUs', 'uses' => 'IndexController@aboutUs']);
Route::get('privacy', ['as' => 'privacy', 'uses' => 'IndexController@privacy']);

我需要检查aboutUsprivacy以获取域名。

如果域名为https://two.com/aboutUshttps://two.com/privacy重定向到https://one.com/aboutUshttps://one.com/privacy

我需要检查中间件。

感谢。

2 个答案:

答案 0 :(得分:1)

您可以使用segment()帮助程序检查网址细分:

if(Request::segment(1)==='aboutus')
{

    return redirect(route('your other route');

}
if(Request::segment(1)==='privacy')
{

    return redirect(route('your other route');

}

您可以在中间件中添加该检查,segment()期望一个整数参数,如果大于1,将检查域名后的第一个通配符。

答案 1 :(得分:1)

你可以在中间件中做这样的事情:

if (request()->getHttpHost() === 'two.com' && in_array(request()->path(), ['aboutUs', 'privacy'])) {
    return redirect('https://one.com/' . request()->path());
}