diff options
Diffstat (limited to 'internal/serving/disk/reader.go')
-rw-r--r-- | internal/serving/disk/reader.go | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/internal/serving/disk/reader.go b/internal/serving/disk/reader.go index a483a8fe..a7d1bb29 100644 --- a/internal/serving/disk/reader.go +++ b/internal/serving/disk/reader.go @@ -49,7 +49,10 @@ func (reader *Reader) tryRedirects(h serving.Handler) bool { r := redirects.ParseRedirects(ctx, root) - rewrittenURL, status, err := r.Rewrite(h.Request.URL) + requestURL := cloneURL(h.Request.URL) + // Taking value from h.Request.Host as h.Request.URL.Host is not populated + requestURL.Host = h.Request.Host + rewrittenURL, status, err := r.Rewrite(requestURL) if err != nil { if !errors.Is(err, redirects.ErrNoRedirect) { // We assume that rewrite failure is not fatal @@ -65,7 +68,7 @@ func (reader *Reader) tryRedirects(h serving.Handler) bool { return reader.tryFile(h) } - http.Redirect(h.Writer, h.Request, rewrittenURL.Path, status) + http.Redirect(h.Writer, h.Request, rewrittenURL.String(), status) return true } |