fix(converter): 没有 root/alias/try_files 的 location 继承 server root
- classifyLocation 增加 serverRoot 参数 - 当 location 没有显式 root/alias/try_files 但有 server 级别 root 时,分类为 static - 正则 location 正确继承 server root 并设置 location_type Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
parent
07acfad146
commit
02265331d4
@ -254,7 +254,7 @@ func convertServerBlock(d *Directive, upstreams map[string]*upstreamInfo, result
|
||||
case "rewrite":
|
||||
parseRewrite(bd, &server)
|
||||
case "location":
|
||||
classification := classifyLocation(bd, result)
|
||||
classification := classifyLocation(bd, serverRoot, result)
|
||||
convertLocation(classification, &server, upstreams, result)
|
||||
case "error_page":
|
||||
parseErrorPage(bd, &server)
|
||||
@ -506,7 +506,7 @@ func parseAuthBasic(d *Directive, server *config.ServerConfig) {
|
||||
}
|
||||
|
||||
// classifyLocation classifies a location block based on its directives.
|
||||
func classifyLocation(d *Directive, result *ConvertResult) locationClassification {
|
||||
func classifyLocation(d *Directive, serverRoot string, result *ConvertResult) locationClassification {
|
||||
class := locationClassification{
|
||||
Directives: d.Block,
|
||||
}
|
||||
@ -570,7 +570,13 @@ func classifyLocation(d *Directive, result *ConvertResult) locationClassificatio
|
||||
case hasRedirect:
|
||||
class.LocType = redirectType
|
||||
default:
|
||||
class.LocType = "unsupported"
|
||||
// If no explicit root/alias/try_files but server-level root exists,
|
||||
// classify as static (will inherit server root)
|
||||
if serverRoot != "" {
|
||||
class.LocType = "static"
|
||||
} else {
|
||||
class.LocType = "unsupported"
|
||||
}
|
||||
}
|
||||
|
||||
return class
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user