@@ -421,6 +421,8 @@ func (h *handler) renderFS(w http.ResponseWriter, r *http.Request) error {
421421 redir := fmt .Sprintf ("%s@etag:%s" , r .URL .Path , etagHex )
422422 if before , rest , ok := strings .Cut (r .URL .Path , "APKINDEX.tar.gz" ); ok {
423423 redir = fmt .Sprintf ("%sAPKINDEX.tar.gz@etag:%s%s" , before , etagHex , rest )
424+ } else if p := r .URL .Query ().Get ("path" ); p != "" {
425+ redir = fmt .Sprintf ("%s@etag:%s/%s" , before , etagHex , p )
424426 }
425427 http .Redirect (w , r , redir + qss , http .StatusFound )
426428 return nil
@@ -583,6 +585,8 @@ func (h *handler) renderLocalFS(w http.ResponseWriter, r *http.Request) error {
583585 redir := fmt .Sprintf ("%s@etag:%s" , r .URL .Path , etagHex )
584586 if before , rest , ok := strings .Cut (r .URL .Path , "APKINDEX.tar.gz" ); ok {
585587 redir = fmt .Sprintf ("%sAPKINDEX.tar.gz@etag:%s%s" , before , etagHex , rest )
588+ } else if p := r .URL .Query ().Get ("path" ); p != "" {
589+ redir = fmt .Sprintf ("%s@etag:%s/%s" , before , etagHex , p )
586590 }
587591 http .Redirect (w , r , redir + qss , http .StatusFound )
588592 return nil
0 commit comments