LoginSignup
2
0

More than 5 years have passed since last update.

laravel5.4のMiddlewareでユーザーエージェントによる振り分けを行う

Posted at

やりたいこと

ユーザーエージェントがSPだったらトップページへリダイレクトしたい

コード

Middlewareの基本的な使い方はこちらをご覧ください。

app/Http/Middleware/SampleRedirect.php
    public function handle($request, Closure $next)
    {
        $ua = $_SERVER['HTTP_USER_AGENT'];
        //spの場合
        if((strpos($ua, 'Android') !== false) && (strpos($ua, 'Mobile') !== false) || (strpos($ua, 'iPhone') !== false) || (strpos($ua, 'Windows Phone') !== false)) {
            return redirect('/');
        }
        return $next($request);
    }
app/Http/Kernel.php
    protected $routeMiddleware = [
        'sampleRedirect' => \App\Http\Middleware\SampleRedirect::class,
    ];
web.php
Route::match(['get', 'post'], '/abcd/', 'sampleController@mainMethod')->middleware('sampleRedirect');

上記のように書いた場合、/abcd/にアクセスがあった際、sampleController.phpのmainMethodの処理をする前にSampleRedirect.phpのhandleの処理をします。
リダイレクトする条件以外の場合はそのままsampleController.phpのmainMethodが処理されます。

Middlewareに書くことでルーティングファイルがすっきりし、汎用的に利用でき、リクエストが処理された後に何かしたいという場合にも使えるため、便利だと思います。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0