nginx를 사용하여 필요한 .php 파일을 찾을 수 없는 경우 try_files를 사용하여 /redirect.php로 리디렉션하고 싶습니다. 그렇게 하는 것이 올바른 방법입니까?
location ~ \.php$ {
...
fastcgi_split_path_info ^(.+\.php)(/.+)$;
try_files $uri /redirect.php =404;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
그러나 그것은 작동하지 않는 것 같습니다.
답변1
location \.php$
이는 확장으로 끝나는 모든 요청이 .php
이 블록에 의해 처리된다는 의미입니다.
당신은 try_files
잘못된 위치에 있습니다. 기존 location /
블록 아래나 블록에 배치해야 합니다 server
.
답변2
이것이 우리가 사용하고 있는 것입니다.슬릭스택오류 처리(및 301 리디렉션 관리)를 위해 존재하지 않는 .php
요청을 WordPress로 리디렉션하려면 다음을 수행하세요.
location ~* \.php$ {
include /etc/nginx/fastcgi.conf;
try_files $uri $uri/ /index.php?$args; ## send .php requests to WordPress if not found
...
}
해당 언급 주위에 많은 답변이 떠돌고 있지만 여기에서 PHP-FPM 라우팅을 fastcgi_intercept_errors on;
사용할 때는 필요하지 않습니다 try_files
.
참조:https://github.com/littlebizzy/slickstack/edit/master/modules/nginx/sites/production.txt