diff options
Diffstat (limited to 'modules/caddyhttp/fileserver/matcher.go')
| -rw-r--r-- | modules/caddyhttp/fileserver/matcher.go | 22 | 
1 files changed, 15 insertions, 7 deletions
| diff --git a/modules/caddyhttp/fileserver/matcher.go b/modules/caddyhttp/fileserver/matcher.go index eca0e8f..b091250 100644 --- a/modules/caddyhttp/fileserver/matcher.go +++ b/modules/caddyhttp/fileserver/matcher.go @@ -20,16 +20,13 @@ import (  	"os"  	"time" -	"github.com/caddyserver/caddy/v2/caddyconfig/caddyfile"  	"github.com/caddyserver/caddy/v2" +	"github.com/caddyserver/caddy/v2/caddyconfig/caddyfile"  	"github.com/caddyserver/caddy/v2/modules/caddyhttp"  )  func init() { -	caddy.RegisterModule(caddy.Module{ -		Name: "http.matchers.file", -		New:  func() interface{} { return new(MatchFile) }, -	}) +	caddy.RegisterModule(MatchFile{})  }  // MatchFile is an HTTP request matcher that can match @@ -52,12 +49,20 @@ type MatchFile struct {  	TryPolicy string `json:"try_policy,omitempty"`  } +// CaddyModule returns the Caddy module information. +func (MatchFile) CaddyModule() caddy.ModuleInfo { +	return caddy.ModuleInfo{ +		Name: "http.matchers.file", +		New:  func() caddy.Module { return new(MatchFile) }, +	} +} +  // UnmarshalCaddyfile sets up the matcher from Caddyfile tokens. Syntax:  //  //     file {  //         root <path>  //         try_files <files...> -//         try_policy <first_exist|smallest_size|largest_size|most_recent_modified> +//         try_policy first_exist|smallest_size|largest_size|most_recent_modified  //     }  //  func (m *MatchFile) UnmarshalCaddyfile(d *caddyfile.Dispenser) error { @@ -82,6 +87,9 @@ func (m *MatchFile) UnmarshalCaddyfile(d *caddyfile.Dispenser) error {  			}  		}  	} +	if m.Root == "" { +		m.Root = "{http.var.root}" +	}  	return nil  } @@ -121,7 +129,7 @@ func (m MatchFile) Match(r *http.Request) bool {  func (m MatchFile) selectFile(r *http.Request) (rel, abs string, matched bool) {  	repl := r.Context().Value(caddy.ReplacerCtxKey).(caddy.Replacer) -	root := repl.ReplaceAll(m.Root, "") +	root := repl.ReplaceAll(m.Root, ".")  	// if list of files to try was omitted entirely,  	// assume URL path | 
