我得到了这个可以工作的构造,但显然不是最优的。我尝试遵循这个指南,https://www.getpagespeed.com/server-setup/nginx-try_files-is-evil-too但是 php 的配置让我很困惑。我担心会造成安全问题。我期望有一个简单的指令,类似于 try_files,所以它会将所有内容传递给 index.php。
我的版本:
location / {
try_files /dev/null /index.php$is_args$args;
}
如果 index.php 在 try_files 中位于第一位,它将提供 php 作为下载。我还尝试了 而不是try_files
,index index.php
但它只在我加载顶级域名时才有效,例如 pretty-urls 那时不起作用。
getpagespeed.com 的示例
location / {
fastcgi_param SCRIPT_FILENAME $document_root/index.php;
include fastcgi_params;
# override SCRIPT_NAME which was set in fastcgi_params
fastcgi_param SCRIPT_NAME /index.php;
fastcgi_pass unix:/var/run/php-fpm/example.com.sock;
}