校验 try_files 最后一个参数(即 fallback uri)的语法约束,核心在于确认其是否以斜杠 / 开头。在 nginx 配置中,如果该参数不以 / 开头,nginx 会将其视为一个文件名而非 uri,导致内部重定向失败或返回 404。因此,最直接的校验方法是检查该字符串的首字符是否为 /。

如何判断 fallback 是文件还是 URI
判断依据是该参数的首字符。如果以 / 开头,Nginx 将其作为 URI 进行内部重定向;否则,它被视为相对于当前 root 或 alias 的文件路径。这种区分决定了请求的处理方式:URI 触发新的内部请求循环,而文件名则直接尝试读取磁盘文件。

def check_fallback_type(fallback_param):
if not fallback_param:
return "empty"
if fallback_param.startswith('/'):
return "uri"
else:
return "file"











