7
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ルーティングは設定しているのにLaravelで404NotFound

Last updated at Posted at 2020-02-09

##1.現象

ルーティングの記述はlaravelの/routes/web.phpに確かに存在しているのに
404 Not Found nginx/1.17.8になってしまう。

スクリーンショット 2020-02-09 16.51.39.png

ルーティングはこちら

routes/web.php
Route::get('/index', 'HelloController@index');

php artisan route:list
でみてもあるんだよなあ

スクリーンショット 2020-02-09 16.57.25.png

##2.バージョン
PHP7.2
laravel5.8
docker使用

##3.解決方法

どうやらdefault.confのnginxの設定がうまく行ってなさそう

default.conf
server {
  listen 80;
    index index.php index.html;
    root /var/www/public;

  location / {
    root /var/www/public;
    index  index.html index.php;
    }

  location ~ \.php$ {

    try_files $uri =404;
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_pass php:9000;
    fastcgi_index index.php;
    include fastcgi_params;
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
      fastcgi_param PATH_INFO $fastcgi_path_info;
  }
}

試したところ、以下ではルートディレクトリ"/"しか表示できなかった。
この以下のlocation部分を変更してみる

  location / {
    root /var/www/public;
    index  index.html index.php;
    }

以下のように変更してファイルやディレクトリを探して、なければ、
/index.php$query_stringで内部リダイレクトさせてみる

  location / {
    try_files $uri $uri/ /index.php?$query_string;
  }

こうしました。

default.conf
server {
  listen 80;
    index index.php index.html;
    root /var/www/public;

  location / {
    try_files $uri $uri/ /index.php?$query_string;
  }

  location ~ \.php$ {

    try_files $uri =404;
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_pass php:9000;
    fastcgi_index index.php;
    include fastcgi_params;
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
      fastcgi_param PATH_INFO $fastcgi_path_info;
  }
}

変更後再度、docker-compose up -dを実行
表示できました〜

###4.参考

他の方が詳しい記事を書いていました。
https://qiita.com/k_hoso/items/33ccb5e02e73a244ed31
https://teratail.com/questions/182086

7
8
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
7
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?