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(?:$|/) {
...
}
我是 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(?:$|/) {
...
}