许多在 nginx 上使用 php-fpm 设置 Wordpress(或类似应用程序)的指南使用的配置部分类似于以下内容:
location ~ [^/]\.php(/|$) {
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
if (!-f $document_root$fastcgi_script_name) {
#some guides suggest try_files $uri =404; instead
return 404;
}
fastcgi_pass php;
fastcgi_index index.php;
include fastcgi_params;
}
#Route anything not otherwise matched
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
使用此配置,如果请求的 URI/someuri
不是实际位置,它将被路由到index.php
后端并从那里路由到后端。
该404
部分是为了防止未经授权的代码执行,因此如果请求的 URI/somefile.php
不存在,则会404
生成一个简单的 nginx。
有什么更好的方法来配置这个(并保持“安全”),以便对不存在的 php 文件的请求也能通过传递到后端index.php
?