mirror of
https://github.com/caddyserver/caddy.git
synced 2025-01-01 00:23:48 +03:00
Moved extensionless middleware into its own package
This commit is contained in:
parent
fe62afd3d9
commit
89783ac0c2
1 changed files with 18 additions and 14 deletions
|
@ -1,26 +1,30 @@
|
|||
package middleware
|
||||
// Extensionless is middleware for clean URLs. A root path is
|
||||
// passed in as well as possible extensions to add, internally,
|
||||
// to paths requested. The first path+ext that matches a resource
|
||||
// that exists will be used.
|
||||
package extensionless
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
"os"
|
||||
"strings"
|
||||
|
||||
"github.com/mholt/caddy/middleware"
|
||||
)
|
||||
|
||||
// Extensionless is middleware for clean URLs. A root path is
|
||||
// passed in as well as possible extensions to add, internally,
|
||||
// to paths requested. The first path+ext that matches a resource
|
||||
// that exists will be used.
|
||||
func Extensionless(p parser) Middleware {
|
||||
// New creates a new instance of middleware that assumes extensions
|
||||
// so the site can use cleaner, extensionless URLs
|
||||
func New(c middleware.Controller) (middleware.Middleware, error) {
|
||||
var extensions []string
|
||||
var root = p.Root() // TODO: Big gotcha! Save this now before it goes away! We can't get this later during a request!
|
||||
var root = c.Root() // TODO: Big gotcha! Save this now before it goes away! We can't get this later during a request!
|
||||
|
||||
for p.Next() {
|
||||
if !p.NextArg() {
|
||||
return p.ArgErr()
|
||||
for c.Next() {
|
||||
if !c.NextArg() {
|
||||
return nil, c.ArgErr()
|
||||
}
|
||||
extensions = append(extensions, p.Val())
|
||||
for p.NextArg() {
|
||||
extensions = append(extensions, p.Val())
|
||||
extensions = append(extensions, c.Val())
|
||||
for c.NextArg() {
|
||||
extensions = append(extensions, c.Val())
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -53,5 +57,5 @@ func Extensionless(p parser) Middleware {
|
|||
}
|
||||
next(w, r)
|
||||
}
|
||||
}
|
||||
}, nil
|
||||
}
|
Loading…
Reference in a new issue