Nginx index.php 不是目录

Nginx index.php not a directory

我是 Nginx 的初学者 我有以下 link 与 apache

一起正常工作
https://127.0.0.1/shop/sub-shop1/index.php/product1/property1

但对于 nginx 也是一样

failed (20: Not a directory)

解决方法是什么?

如果您确实需要从 URI 中提取 PATH_INFO 并传递给您的后端 PHP 应用程序,那么看起来就像您的情况。现在这种情况非常罕见,虽然我不断看到尝试在各种配置中一遍又一遍地设置 PATH_INFO FastCGI 变量,例如

location ~ \.php$ {
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    ...
}

它在那里没有任何意义,因为使用那种 PHP 处理程序位置没有真正包含 PATH_INFO 的 URI 将永远被 \.php$ 正则表达式模式捕获。为了使其可行,请使用适当的正则表达式模式,如官方 PHP FastCGI example:

中建议的模式
location ~ [^/]\.php(?:$|/) {
    ...
}