라우팅이 설정되었지만 Laravel에서 404NotFound
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
Reference
이 문제에 관하여(라우팅이 설정되었지만 Laravel에서 404NotFound), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/isaatsu0131/items/f1eafe7522f0bf0ff043텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)