summaryrefslogtreecommitdiff
path: root/modules/caddyhttp/map/map.go
diff options
context:
space:
mode:
Diffstat (limited to 'modules/caddyhttp/map/map.go')
-rw-r--r--modules/caddyhttp/map/map.go28
1 files changed, 11 insertions, 17 deletions
diff --git a/modules/caddyhttp/map/map.go b/modules/caddyhttp/map/map.go
index 670a55b..8394955 100644
--- a/modules/caddyhttp/map/map.go
+++ b/modules/caddyhttp/map/map.go
@@ -131,27 +131,21 @@ func (h Handler) ServeHTTP(w http.ResponseWriter, r *http.Request, next caddyhtt
// find the first mapping matching the input and return
// the requested destination/output value
for _, m := range h.Mappings {
- if m.re != nil {
- if m.re.MatchString(input) {
- if output := m.Outputs[destIdx]; output == nil {
- continue
- } else {
- var result []byte
- for _, submatches := range m.re.FindAllStringSubmatchIndex(input, -1) {
- result = m.re.ExpandString(result, m.Outputs[destIdx].(string), input, submatches)
- }
- output = string(result)
- return output, true
- }
- }
+ output := m.Outputs[destIdx]
+ if output == nil {
continue
}
- if input == m.Input {
- if output := m.Outputs[destIdx]; output == nil {
+ if m.re != nil {
+ var result []byte
+ matches := m.re.FindStringSubmatchIndex(input)
+ if matches == nil {
continue
- } else {
- return output, true
}
+ result = m.re.ExpandString(result, output.(string), input, matches)
+ return string(result), true
+ }
+ if input == m.Input {
+ return output, true
}
}