| 551 | } |
| 552 | |
| 553 | func (q *queryOps) do(r *http.Request, repl *caddy.Replacer) { |
| 554 | query := r.URL.Query() |
| 555 | for _, renameParam := range q.Rename { |
| 556 | key := repl.ReplaceAll(renameParam.Key, "") |
| 557 | val := repl.ReplaceAll(renameParam.Val, "") |
| 558 | if key == "" || val == "" { |
| 559 | continue |
| 560 | } |
| 561 | if key == val { |
| 562 | continue |
| 563 | } |
| 564 | originalValues, ok := query[key] |
| 565 | if !ok { |
| 566 | continue |
| 567 | } |
| 568 | query[val] = originalValues |
| 569 | delete(query, key) |
| 570 | } |
| 571 | |
| 572 | for _, setParam := range q.Set { |
| 573 | key := repl.ReplaceAll(setParam.Key, "") |
| 574 | if key == "" { |
| 575 | continue |
| 576 | } |
| 577 | val := repl.ReplaceAll(setParam.Val, "") |
| 578 | query[key] = []string{val} |
| 579 | } |
| 580 | |
| 581 | for _, addParam := range q.Add { |
| 582 | key := repl.ReplaceAll(addParam.Key, "") |
| 583 | if key == "" { |
| 584 | continue |
| 585 | } |
| 586 | val := repl.ReplaceAll(addParam.Val, "") |
| 587 | query[key] = append(query[key], val) |
| 588 | } |
| 589 | |
| 590 | for _, replaceParam := range q.Replace { |
| 591 | key := repl.ReplaceAll(replaceParam.Key, "") |
| 592 | search := repl.ReplaceKnown(replaceParam.Search, "") |
| 593 | replace := repl.ReplaceKnown(replaceParam.Replace, "") |
| 594 | |
| 595 | // replace all query keys... |
| 596 | if key == "*" { |
| 597 | for fieldName, vals := range query { |
| 598 | for i := range vals { |
| 599 | if replaceParam.re != nil { |
| 600 | query[fieldName][i] = replaceParam.re.ReplaceAllString(query[fieldName][i], replace) |
| 601 | } else { |
| 602 | query[fieldName][i] = strings.ReplaceAll(query[fieldName][i], search, replace) |
| 603 | } |
| 604 | } |
| 605 | } |
| 606 | continue |
| 607 | } |
| 608 | |
| 609 | for fieldName, vals := range query { |
| 610 | for i := range vals { |