mirror of https://github.com/jlelse/GoBlog
Fix headAsGetHandler
This commit is contained in:
parent
1c7195a135
commit
da3b9d5c76
2
cache.go
2
cache.go
|
@ -94,7 +94,7 @@ func (a *goBlog) cacheMiddleware(next http.Handler) http.Handler {
|
|||
}
|
||||
|
||||
func cacheable(r *http.Request) bool {
|
||||
if !(r.Method == http.MethodGet || r.Method == http.MethodHead) {
|
||||
if r.Method != http.MethodGet && r.Method != http.MethodHead {
|
||||
return false
|
||||
}
|
||||
if r.URL.Query().Get("cache") == "0" || r.URL.Query().Get("cache") == "false" {
|
||||
|
|
4
http.go
4
http.go
|
@ -46,7 +46,7 @@ func (a *goBlog) startServer() (err error) {
|
|||
compressor.SetEncoder("br", func(w io.Writer, _ int) io.Writer {
|
||||
return brotli.NewWriter(w)
|
||||
})
|
||||
h = h.Append(middleware.Recoverer, compressor.Handler, middleware.Heartbeat("/ping"), headAsGetHandler)
|
||||
h = h.Append(middleware.Recoverer, compressor.Handler, middleware.Heartbeat("/ping"))
|
||||
if a.httpsConfigured(false) {
|
||||
h = h.Append(a.securityHeaders)
|
||||
}
|
||||
|
@ -225,7 +225,7 @@ func (a *goBlog) buildRouter() (http.Handler, error) {
|
|||
r.MethodNotAllowed(a.serveNotAllowed)
|
||||
|
||||
mapRouter.DefaultHandler = r
|
||||
return mapRouter, nil
|
||||
return alice.New(headAsGetHandler).Then(mapRouter), nil
|
||||
}
|
||||
|
||||
func (a *goBlog) servePostsAliasesRedirects() http.HandlerFunc {
|
||||
|
|
|
@ -23,7 +23,13 @@ func fixHTTPHandler(next http.Handler) http.Handler {
|
|||
func headAsGetHandler(next http.Handler) http.Handler {
|
||||
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
||||
if r.Method == http.MethodHead {
|
||||
r.Method = http.MethodGet
|
||||
// Clone request and change method
|
||||
newReq := new(http.Request)
|
||||
*newReq = *r
|
||||
newReq.Method = http.MethodGet
|
||||
// Serve new request
|
||||
next.ServeHTTP(w, newReq)
|
||||
return
|
||||
}
|
||||
next.ServeHTTP(w, r)
|
||||
})
|
||||
|
|
Loading…
Reference in New Issue