直接调用 index.php 而不是 try_files

直接调用 index.php 而不是 try_files

我得到了这个可以工作的构造,但显然不是最优的。我尝试遵循这个指南,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_filesindex 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;
}

相关内容