[Lumen] リダイレクトヘルパーでステータスコードを設定する

Lumenでサイトをリニューアルしていて、旧URLからリダイレクトする際に、ステータスコードを301に変更したかったのでやり方のメモです。

Lumenのリダイレクトはデフォルトでは302リダイレクト

公式ドキュメントには特別書いてないのですが、ネット上の情報を調べる限り、LumenやLaravelのリダイレクトヘルパーは、デフォルトでは302リダイレクト(Moved Temporarily)になっているようです。

今回はURLを変更したいので301(Moved Permanently)にしたいので、変更の仕方を探してみました。

Lumenのリダイレクトでステータスコードを設定する方法

Laravelを使っている人は、おそらく想像がつくと思うのですが、普通にルーターからリダイレクトするなら、

Route::get('foo', function(){ 
    return redirect('/bar', 301); 
});

こんな感じでいけます。

一度コントローラに渡してから、諸々処理をするなら、コントローラの最後に

return redirect()->route('newArticle', ['article_id'=>$article["id"]], 301);

とすれば、コントローラーベースで引数を渡してリダイレクトをかけることができます。

大事なのは、ステータスコードは、routeで渡す引数の最後に入れるということです。


こうして振り返ってみると、「まあ、それだけなのことだよね」って感じなのですが、Lumenは結構情報が少ないので、誰かのために慣れれば幸いです。