mirror of
https://github.com/caddyserver/caddy.git
synced 2024-12-26 13:43:47 +03:00
rewrite: Add method
Caddyfile directive (#4528)
This commit is contained in:
parent
6e6ce2be6b
commit
bcb7a19cd3
3 changed files with 48 additions and 1 deletions
|
@ -45,7 +45,8 @@ var directiveOrder = []string{
|
|||
|
||||
"redir",
|
||||
|
||||
// URI manipulation
|
||||
// incoming request manipulation
|
||||
"method",
|
||||
"rewrite",
|
||||
"uri",
|
||||
"try_files",
|
||||
|
|
27
caddytest/integration/caddyfile_adapt/method_directive.txt
Normal file
27
caddytest/integration/caddyfile_adapt/method_directive.txt
Normal file
|
@ -0,0 +1,27 @@
|
|||
:8080 {
|
||||
method FOO
|
||||
}
|
||||
----------
|
||||
{
|
||||
"apps": {
|
||||
"http": {
|
||||
"servers": {
|
||||
"srv0": {
|
||||
"listen": [
|
||||
":8080"
|
||||
],
|
||||
"routes": [
|
||||
{
|
||||
"handle": [
|
||||
{
|
||||
"handler": "rewrite",
|
||||
"method": "FOO"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -27,6 +27,7 @@ import (
|
|||
|
||||
func init() {
|
||||
httpcaddyfile.RegisterHandlerDirective("rewrite", parseCaddyfileRewrite)
|
||||
httpcaddyfile.RegisterHandlerDirective("method", parseCaddyfileMethod)
|
||||
httpcaddyfile.RegisterHandlerDirective("uri", parseCaddyfileURI)
|
||||
httpcaddyfile.RegisterDirective("handle_path", parseCaddyfileHandlePath)
|
||||
}
|
||||
|
@ -51,6 +52,24 @@ func parseCaddyfileRewrite(h httpcaddyfile.Helper) (caddyhttp.MiddlewareHandler,
|
|||
return rewr, nil
|
||||
}
|
||||
|
||||
// parseCaddyfileMethod sets up a basic method rewrite handler from Caddyfile tokens. Syntax:
|
||||
//
|
||||
// method [<matcher>] <method>
|
||||
//
|
||||
func parseCaddyfileMethod(h httpcaddyfile.Helper) (caddyhttp.MiddlewareHandler, error) {
|
||||
var rewr Rewrite
|
||||
for h.Next() {
|
||||
if !h.NextArg() {
|
||||
return nil, h.ArgErr()
|
||||
}
|
||||
rewr.Method = h.Val()
|
||||
if h.NextArg() {
|
||||
return nil, h.ArgErr()
|
||||
}
|
||||
}
|
||||
return rewr, nil
|
||||
}
|
||||
|
||||
// parseCaddyfileURI sets up a handler for manipulating (but not "rewriting") the
|
||||
// URI from Caddyfile tokens. Syntax:
|
||||
//
|
||||
|
|
Loading…
Reference in a new issue