라우팅이 설정되었지만 Laravel에서 404NotFound

2848 단어 nginx도커라라벨

1. 현상



라우팅 설명은 laravel의/routes/web.php에 확실히 존재하지만
404 Not Found nginx/1.17.8이 되어 버린다.



라우팅은 이쪽

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

php artisan route:list
봐도 있습니다.



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 / {
    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. 참고



다른 쪽이 자세한 기사를 쓰고 있었습니다.
htps : // 이 m / k_ 호소 / ms / 33 cb5 02 73 a 244 e d31
htps : // 놀라운 l. 코 m / 쿠에 s 치온 s / 182086

좋은 웹페이지 즐겨찾기