mirror of https://github.com/caddyserver/caddy.git
httpcaddyfile: Update directive docs; put root after rewrite
This commit is contained in:
parent
5d3ccf1eb7
commit
d810637a9f
|
@ -30,7 +30,7 @@ import (
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
RegisterDirective("bind", parseBind)
|
RegisterDirective("bind", parseBind)
|
||||||
RegisterDirective("root", parseRoot)
|
RegisterDirective("root", parseRoot) // TODO: isn't this a handler directive?
|
||||||
RegisterDirective("tls", parseTLS)
|
RegisterDirective("tls", parseTLS)
|
||||||
RegisterHandlerDirective("redir", parseRedir)
|
RegisterHandlerDirective("redir", parseRedir)
|
||||||
RegisterHandlerDirective("respond", parseRespond)
|
RegisterHandlerDirective("respond", parseRespond)
|
||||||
|
@ -38,6 +38,10 @@ func init() {
|
||||||
RegisterHandlerDirective("handle", parseHandle)
|
RegisterHandlerDirective("handle", parseHandle)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// parseBind parses the bind directive. Syntax:
|
||||||
|
//
|
||||||
|
// bind <addresses...>
|
||||||
|
//
|
||||||
func parseBind(h Helper) ([]ConfigValue, error) {
|
func parseBind(h Helper) ([]ConfigValue, error) {
|
||||||
var lnHosts []string
|
var lnHosts []string
|
||||||
for h.Next() {
|
for h.Next() {
|
||||||
|
@ -46,6 +50,10 @@ func parseBind(h Helper) ([]ConfigValue, error) {
|
||||||
return h.NewBindAddresses(lnHosts), nil
|
return h.NewBindAddresses(lnHosts), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// parseRoot parses the root directive. Syntax:
|
||||||
|
//
|
||||||
|
// root [<matcher>] <path>
|
||||||
|
//
|
||||||
func parseRoot(h Helper) ([]ConfigValue, error) {
|
func parseRoot(h Helper) ([]ConfigValue, error) {
|
||||||
if !h.Next() {
|
if !h.Next() {
|
||||||
return nil, h.ArgErr()
|
return nil, h.ArgErr()
|
||||||
|
@ -251,6 +259,10 @@ func parseTLS(h Helper) ([]ConfigValue, error) {
|
||||||
return configVals, nil
|
return configVals, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// parseRedir parses the redir directive. Syntax:
|
||||||
|
//
|
||||||
|
// redir [<matcher>] <to> [<code>]
|
||||||
|
//
|
||||||
func parseRedir(h Helper) (caddyhttp.MiddlewareHandler, error) {
|
func parseRedir(h Helper) (caddyhttp.MiddlewareHandler, error) {
|
||||||
if !h.Next() {
|
if !h.Next() {
|
||||||
return nil, h.ArgErr()
|
return nil, h.ArgErr()
|
||||||
|
@ -269,10 +281,10 @@ func parseRedir(h Helper) (caddyhttp.MiddlewareHandler, error) {
|
||||||
code = "301"
|
code = "301"
|
||||||
}
|
}
|
||||||
if code == "temporary" || code == "" {
|
if code == "temporary" || code == "" {
|
||||||
code = "307"
|
code = "302"
|
||||||
}
|
}
|
||||||
var body string
|
var body string
|
||||||
if code == "meta" {
|
if code == "html" {
|
||||||
// Script tag comes first since that will better imitate a redirect in the browser's
|
// Script tag comes first since that will better imitate a redirect in the browser's
|
||||||
// history, but the meta tag is a fallback for most non-JS clients.
|
// history, but the meta tag is a fallback for most non-JS clients.
|
||||||
const metaRedir = `<!DOCTYPE html>
|
const metaRedir = `<!DOCTYPE html>
|
||||||
|
@ -296,6 +308,7 @@ func parseRedir(h Helper) (caddyhttp.MiddlewareHandler, error) {
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// parseRespond parses the respond directive.
|
||||||
func parseRespond(h Helper) (caddyhttp.MiddlewareHandler, error) {
|
func parseRespond(h Helper) (caddyhttp.MiddlewareHandler, error) {
|
||||||
sr := new(caddyhttp.StaticResponse)
|
sr := new(caddyhttp.StaticResponse)
|
||||||
err := sr.UnmarshalCaddyfile(h.Dispenser)
|
err := sr.UnmarshalCaddyfile(h.Dispenser)
|
||||||
|
@ -305,6 +318,7 @@ func parseRespond(h Helper) (caddyhttp.MiddlewareHandler, error) {
|
||||||
return sr, nil
|
return sr, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// parseRoute parses the route directive.
|
||||||
func parseRoute(h Helper) (caddyhttp.MiddlewareHandler, error) {
|
func parseRoute(h Helper) (caddyhttp.MiddlewareHandler, error) {
|
||||||
sr := new(caddyhttp.Subroute)
|
sr := new(caddyhttp.Subroute)
|
||||||
|
|
||||||
|
@ -337,6 +351,7 @@ func parseRoute(h Helper) (caddyhttp.MiddlewareHandler, error) {
|
||||||
return sr, nil
|
return sr, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// parseHandle parses the route directive.
|
||||||
func parseHandle(h Helper) (caddyhttp.MiddlewareHandler, error) {
|
func parseHandle(h Helper) (caddyhttp.MiddlewareHandler, error) {
|
||||||
var allResults []ConfigValue
|
var allResults []ConfigValue
|
||||||
|
|
||||||
|
|
|
@ -27,11 +27,11 @@ import (
|
||||||
// directiveOrder specifies the order
|
// directiveOrder specifies the order
|
||||||
// to apply directives in HTTP routes.
|
// to apply directives in HTTP routes.
|
||||||
var directiveOrder = []string{
|
var directiveOrder = []string{
|
||||||
"root",
|
|
||||||
|
|
||||||
"redir",
|
"redir",
|
||||||
"rewrite",
|
"rewrite",
|
||||||
|
|
||||||
|
"root",
|
||||||
|
|
||||||
"strip_prefix",
|
"strip_prefix",
|
||||||
"strip_suffix",
|
"strip_suffix",
|
||||||
"uri_replace",
|
"uri_replace",
|
||||||
|
|
|
@ -51,9 +51,12 @@ type MatchFile struct {
|
||||||
Root string `json:"root,omitempty"`
|
Root string `json:"root,omitempty"`
|
||||||
|
|
||||||
// The list of files to try. Each path here is
|
// The list of files to try. Each path here is
|
||||||
// considered relatice to Root. If nil, the
|
// considered relatice to Root. If nil, the request
|
||||||
// request URL's path will be assumed. Accepts
|
// URL's path will be assumed. Files and
|
||||||
// placeholders.
|
// directories are treated distinctly, so to match
|
||||||
|
// a directory, the filepath MUST end in a forward
|
||||||
|
// slash `/`. To match a regular file, there must
|
||||||
|
// be no trailing slash. Accepts placeholders.
|
||||||
TryFiles []string `json:"try_files,omitempty"`
|
TryFiles []string `json:"try_files,omitempty"`
|
||||||
|
|
||||||
// How to choose a file in TryFiles. Can be:
|
// How to choose a file in TryFiles. Can be:
|
||||||
|
|
|
@ -54,7 +54,7 @@ func (StaticResponse) CaddyModule() caddy.ModuleInfo {
|
||||||
|
|
||||||
// UnmarshalCaddyfile sets up the handler from Caddyfile tokens. Syntax:
|
// UnmarshalCaddyfile sets up the handler from Caddyfile tokens. Syntax:
|
||||||
//
|
//
|
||||||
// respond [<matcher>] [<status>|[<body> [<status>]] {
|
// respond [<matcher>] <status>|<body> [<status>] {
|
||||||
// body <text>
|
// body <text>
|
||||||
// close
|
// close
|
||||||
// }
|
// }
|
||||||
|
|
Loading…
Reference in New Issue