diff options
-rw-r--r-- | caddyconfig/httpcaddyfile/directives.go | 11 | ||||
-rw-r--r-- | modules/caddyhttp/caddyhttp.go | 2 |
2 files changed, 11 insertions, 2 deletions
diff --git a/caddyconfig/httpcaddyfile/directives.go b/caddyconfig/httpcaddyfile/directives.go index ba8f438..4c2b2d9 100644 --- a/caddyconfig/httpcaddyfile/directives.go +++ b/caddyconfig/httpcaddyfile/directives.go @@ -27,14 +27,21 @@ import ( // directiveOrder specifies the order // to apply directives in HTTP routes. +// +// The root directive goes first in case rewrites or +// redirects depend on existence of files, i.e. the +// file matcher, which must know the root first. +// +// The header directive goes second so that headers +// can be manipulated before doing redirects. var directiveOrder = []string{ + "root", + "header", "redir", "rewrite", - "root", - // URI manipulation "uri", "try_files", diff --git a/modules/caddyhttp/caddyhttp.go b/modules/caddyhttp/caddyhttp.go index 4fd09a2..6666d3e 100644 --- a/modules/caddyhttp/caddyhttp.go +++ b/modules/caddyhttp/caddyhttp.go @@ -199,6 +199,8 @@ func StatusCodeMatches(actual, configured int) bool { // tlsPlaceholderWrapper is a no-op listener wrapper that marks // where the TLS listener should be in a chain of listener wrappers. +// It should only be used if another listener wrapper must be placed +// in front of the TLS handshake. type tlsPlaceholderWrapper struct{} func (tlsPlaceholderWrapper) CaddyModule() caddy.ModuleInfo { |