Nginx + php fastcgi 显示 "No input file specified." 而不是 404
Nginx + php fastcgi showing "No input file specified." instead of 404
我的问题很简单。
当我请求一个不存在的 .php 文件时,我看到 "No input file specified.",而不是您期望的 404 页面。
我知道我正在将所有带有 .php 扩展名的请求传递给 php-fpm,我想 php-fpm returns "No input file specified." 当文件不存在时(?)。
我该如何解决这个问题?
/etc/nginx/nginx.conf:
http {
server {
listen 443 ssl;
server_name smarthome.dk;
ssl_certificate /home/www/SmartHome/cert/ssl.crt;
ssl_certificate_key /home/www/SmartHome/cert/ssl.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
keepalive_timeout 70;
root /home/www/SmartHome/public_html;
index index.php index.html;
location / {
try_files $uri $uri/ /404.php?$args;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_intercept_errors on;
}
}
我在 /etc/php5/fpm/php.ini.
中有 cgi.fix_pathinfo = 0;
我想通了
您需要将 try_files $uri $uri/ /404.php?$args;
添加到 location ~\.php$
没有指定输入文件,因为文件不存在,所以不通过。 try_files $uri $uri/ /404.php?$args;
检查文件是否确实存在,否则重定向到 404.php
我的问题很简单。
当我请求一个不存在的 .php 文件时,我看到 "No input file specified.",而不是您期望的 404 页面。
我知道我正在将所有带有 .php 扩展名的请求传递给 php-fpm,我想 php-fpm returns "No input file specified." 当文件不存在时(?)。 我该如何解决这个问题?
/etc/nginx/nginx.conf:
http {
server {
listen 443 ssl;
server_name smarthome.dk;
ssl_certificate /home/www/SmartHome/cert/ssl.crt;
ssl_certificate_key /home/www/SmartHome/cert/ssl.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
keepalive_timeout 70;
root /home/www/SmartHome/public_html;
index index.php index.html;
location / {
try_files $uri $uri/ /404.php?$args;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_intercept_errors on;
}
}
我在 /etc/php5/fpm/php.ini.
中有cgi.fix_pathinfo = 0;
我想通了
您需要将 try_files $uri $uri/ /404.php?$args;
添加到 location ~\.php$
没有指定输入文件,因为文件不存在,所以不通过。 try_files $uri $uri/ /404.php?$args;
检查文件是否确实存在,否则重定向到 404.php