@@ -27,6 +27,7 @@ module Network.Wai.Middleware.Rewrite
2727 -- ** Recommended functions
2828 , rewriteWithQueries
2929 , rewritePureWithQueries
30+ , rewriteRoot
3031
3132 -- ** Deprecated
3233 , rewrite
@@ -263,6 +264,21 @@ rewritePureWithQueries :: (PathsAndQueries -> H.RequestHeaders -> PathsAndQuerie
263264 -> Middleware
264265rewritePureWithQueries convert app req = app $ rewriteRequestPure convert req
265266
267+-- | Rewrite root requests (/) to a specified path
268+--
269+-- Note that /index.html/ in example below should already be a valid route.
270+--
271+-- @
272+-- rewriteRoot "index.html" :: Middleware
273+-- @
274+--
275+-- @since 3.0.23.0
276+rewriteRoot :: Text -> Middleware
277+rewriteRoot root = rewritePureWithQueries onlyRoot
278+ where
279+ onlyRoot ([], q) _ = ([root], q)
280+ onlyRoot paths _ = paths
281+
266282--------------------------------------------------
267283-- * Modifying 'Request's directly
268284--------------------------------------------------