我有一个带/ usercp /和usercp.php的网络服务器。我正在使用tryfiles并重新编写以查看file.php是否存在do file,否则goto / file /(在我的情况下是file = usercp)
这是我的nginx conf。
location / {
try_files $uri $uri/ @extension-php;
}
location @extension-php {
rewrite ^(.*)$ $1.php last;
}
这也使site.com/usercp/出现403错误。有什么想法吗?
答案 0 :(得分:3)
问题是你要优先考虑文件夹上的文件索引,如果你想要反对我建议你不要使用autoindex on
,因为它暴露你文件夹的内容并交换try_files中的最后两个项目,试试这个
location / {
try_files $uri $uri.php $uri/;
}
PS: $uri/
如果不包含index
中指定的索引文件,将始终返回403,因为默认情况下它禁止文件夹列表,您应该放置索引文件,如果这是您打算做的,或者只是从$uri/
删除整个try_files
,以便它返回404
而不是403
答案 1 :(得分:0)
它的作用只是检查文件是否存在,然后提供存在的文件。
您声称/usercp/
存在。因此,这就是它将尝试服务的东西。但您可能没有autoindex on
,因此不允许使用目录列表 - 403 Forbidden
。