nginx와 php-fpm의 구성으로 톱 페이지 이외가 404가 되는 문제 해결
문제점
例: http://ドメイン/
는 정상적으로 표시되지만, 하위 폴더 例: http://ドメイン/blog
가 404 에러가 되어 버리는 문제가 발생. 원인
원인 코드
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
index index.php index.html index.htm;
server_name _;
location / {
try_files $uri $uri/ =404; # <--ここで 404 判定されている
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
}
}
location /
안에서 404 로 판정되어 버리고 있다, 가 된다. 대처
대처방침
조치 코드
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
index index.php index.html index.htm;
server_name ドメイン;
location / {
try_files $uri $uri/ @grav;
}
location ~ \.php$ {
try_files $uri $uri/ @grav;
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
}
location @grav {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
fastcgi_param SCRIPT_FILENAME /var/www/html/index.php;
include fastcgi_params;
}
}
해설
location /
에서 대상 파일이 없으면 @grav
로 처리를 전달하도록 변경됩니다.location @grav
에서 php-fpm을 작동시킵니다. 그 때에 파라미터로서 SCRIPT_FILENAME
로 index.php 가 처리용 스크립트인 것을 명시해 둔다. 참고로 한 사이트
Reference
이 문제에 관하여(nginx와 php-fpm의 구성으로 톱 페이지 이외가 404가 되는 문제 해결), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/tuneyukkie/items/3c552c71aed15ee311f5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)