diff --git a/synapse/http/server.py b/synapse/http/server.py
index 87b4fc8a5f..bad2738bde 100644
--- a/synapse/http/server.py
+++ b/synapse/http/server.py
@@ -22,6 +22,7 @@ from synapse.api.errors import cs_exception, CodeMessageException
from twisted.internet import defer, reactor
from twisted.web import server, resource
from twisted.web.server import NOT_DONE_YET
+from twisted.web.util import redirectTo
import collections
import logging
@@ -159,6 +160,22 @@ class JsonResource(HttpServer, resource.Resource):
return False
+class RootRedirect(resource.Resource):
+ """Redirects the root '/' path to another path."""
+
+ def __init__(self, path):
+ resource.Resource.__init__(self)
+ self.url = path
+
+ def render_GET(self, request):
+ return redirectTo(self.url, request)
+
+ def getChild(self, name, request):
+ if len(name) == 0:
+ return self # select ourselves as the child to render
+ return resource.Resource.getChild(self, name, request)
+
+
def respond_with_json_bytes(request, code, json_bytes, send_cors=False):
"""Sends encoded JSON in response to the given request.
|