Laravel+Nginxでルーティングが正しいのに404 Not Foundが出る時の対処法

Laravelでルーティングをいくら見直しても正しいのに、ルートディレクトリ以外は「404 not found」が表示される…。

Laravelに問題があると思っていたけど、原因はサーバで使用しているNginxの設定にありました。

 

Laravel+Nginxの設定を調べていると、この設定が抜けていることに気づき、追加すると無事に表示されました。

このtry_filesは、リクエストに応じたファイルを返します。まずはドメイン以下のURL部分のファイルを探し、ない場合はディレクトリを探します。

それでもなかった場合は、index.phpファイルを返しています。

参考:nginx try_filesディレクティブ

参考:nginxのlocationディレクティブ内のリダイレクト処理について

 

原因がわかるまで、ずいぶん時間をかけてしまった…。

Laravel+Apacheの記事は豊富なのに、Laravel+Nginxはあまりなかったのでメモとして残しておきます。