closes #52 - use 307 redirect for http 1.1
This commit is contained in:
parent
a1bf9c7457
commit
0ef60e752f
@ -377,7 +377,7 @@ runHandler :: HasReps c
|
|||||||
-> master
|
-> master
|
||||||
-> sub
|
-> sub
|
||||||
-> YesodApp
|
-> YesodApp
|
||||||
runHandler handler mrender sroute tomr ma sa =
|
runHandler handler mrender sroute tomr master sub =
|
||||||
YesodApp $ \eh rr cts initSession -> do
|
YesodApp $ \eh rr cts initSession -> do
|
||||||
let toErrorHandler e =
|
let toErrorHandler e =
|
||||||
case fromException e of
|
case fromException e of
|
||||||
@ -392,8 +392,8 @@ runHandler handler mrender sroute tomr ma sa =
|
|||||||
}
|
}
|
||||||
let hd = HandlerData
|
let hd = HandlerData
|
||||||
{ handlerRequest = rr
|
{ handlerRequest = rr
|
||||||
, handlerSub = sa
|
, handlerSub = sub
|
||||||
, handlerMaster = ma
|
, handlerMaster = master
|
||||||
, handlerRoute = sroute
|
, handlerRoute = sroute
|
||||||
, handlerRender = mrender
|
, handlerRender = mrender
|
||||||
, handlerToMaster = tomr
|
, handlerToMaster = tomr
|
||||||
@ -423,7 +423,7 @@ runHandler handler mrender sroute tomr ma sa =
|
|||||||
HCRedirect rt loc -> do
|
HCRedirect rt loc -> do
|
||||||
let hs = Header "Location" (encodeUtf8 loc) : appEndo headers []
|
let hs = Header "Location" (encodeUtf8 loc) : appEndo headers []
|
||||||
return $ YARPlain
|
return $ YARPlain
|
||||||
(getRedirectStatus rt) hs typePlain emptyContent
|
(getRedirectStatus rt $ reqWaiRequest rr) hs typePlain emptyContent
|
||||||
finalSession
|
finalSession
|
||||||
HCSendFile ct fp p -> catchIter
|
HCSendFile ct fp p -> catchIter
|
||||||
(sendFile' ct fp p)
|
(sendFile' ct fp p)
|
||||||
@ -707,10 +707,12 @@ getStatus (InvalidArgs _) = H.status400
|
|||||||
getStatus (PermissionDenied _) = H.status403
|
getStatus (PermissionDenied _) = H.status403
|
||||||
getStatus (BadMethod _) = H.status405
|
getStatus (BadMethod _) = H.status405
|
||||||
|
|
||||||
getRedirectStatus :: RedirectType -> H.Status
|
getRedirectStatus :: RedirectType -> W.Request -> H.Status
|
||||||
getRedirectStatus RedirectPermanent = H.status301
|
getRedirectStatus RedirectPermanent _ = H.status301
|
||||||
getRedirectStatus RedirectTemporary = H.status302
|
getRedirectStatus RedirectTemporary r
|
||||||
getRedirectStatus RedirectSeeOther = H.status303
|
| W.httpVersion r == H.http11 = H.status307
|
||||||
|
| otherwise = H.status302
|
||||||
|
getRedirectStatus RedirectSeeOther _ = H.status303
|
||||||
|
|
||||||
-- | Different types of redirects.
|
-- | Different types of redirects.
|
||||||
data RedirectType = RedirectPermanent
|
data RedirectType = RedirectPermanent
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user