我有配置(最小):
server {
listen test.local:80;
server_name test.local;
server_name_in_redirect off;
location / {
root /data/www/test/public;
try_files $uri $uri/ /index.php?route=$uri&$args;
index index.html index.php;
}
location ~ \.php$ {
root /data/www/test/public;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /data/www/test/public$fastcgi_script_name;
fastcgi_param ...
...
}
}
这是网址/help/
或/contacts/
等的工作文件...(所有重定向到带有get变量的index.php)。
但是如果url,例如/help.php
或contacts.php
,并且这些文件不存在,我输出:
File not found.
如何更新我的Nginx配置?我需要网址,例如:
/help.php => /index.php?route=/help.php
/contacts.php?foo=bar... => /index.php?route=/contacts.php&args=…
答案 0 :(得分:0)
这是404错误页面的简单配置。它的自定义404页面。
error_page 404 /404.php;
location /404.php {
root /var/www/public_html;
allow all;
}
最后一部分
重要的一行是========== try_files $ uri = 404;
location ~ .php$ {
try_files $uri =404;
fastcgi_pass 127.0.0.1:9001;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/public_html$fastcgi_script_name;
include fastcgi_params;
}