[Lumen] リダイレクトヘルパーでステータスコードを設定する
Lumenでサイトをリニューアルしていて、旧URLからリダイレクトする際に、ステータスコードを301に変更したかったのでやり方のメモです。
更新日: 2018.7.17公開日: 2018.6.27
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は結構情報が少ないので、誰かのために慣れれば幸いです。