diff --git a/IPython/html/notebook/handlers.py b/IPython/html/notebook/handlers.py
index 6730017..2f963ba 100644
--- a/IPython/html/notebook/handlers.py
+++ b/IPython/html/notebook/handlers.py
@@ -74,7 +74,7 @@ class NotebookRedirectHandler(IPythonHandler):
default_handlers = [
- (r"/notebooks/?%s" % _notebook_path_regex, NotebookHandler),
- (r"/notebooks/?%s" % _path_regex, NotebookRedirectHandler),
+ (r"/notebooks%s" % _notebook_path_regex, NotebookHandler),
+ (r"/notebooks%s" % _path_regex, NotebookRedirectHandler),
]
diff --git a/IPython/html/services/notebooks/handlers.py b/IPython/html/services/notebooks/handlers.py
index a2cdb06..0505fb6 100644
--- a/IPython/html/services/notebooks/handlers.py
+++ b/IPython/html/services/notebooks/handlers.py
@@ -229,18 +229,18 @@ class ModifyNotebookCheckpointsHandler(IPythonHandler):
#-----------------------------------------------------------------------------
-_path_regex = r"(?P.*)"
+_path_regex = r"(?P(?:/.*)*)"
_checkpoint_id_regex = r"(?P[\w-]+)"
_notebook_name_regex = r"(?P[^/]+\.ipynb)"
_notebook_path_regex = "%s/%s" % (_path_regex, _notebook_name_regex)
default_handlers = [
- (r"/api/notebooks/?%s/copy" % _notebook_path_regex, NotebookCopyHandler),
- (r"/api/notebooks/?%s/checkpoints" % _notebook_path_regex, NotebookCheckpointsHandler),
- (r"/api/notebooks/?%s/checkpoints/%s" % (_notebook_path_regex, _checkpoint_id_regex),
+ (r"/api/notebooks%s/copy" % _notebook_path_regex, NotebookCopyHandler),
+ (r"/api/notebooks%s/checkpoints" % _notebook_path_regex, NotebookCheckpointsHandler),
+ (r"/api/notebooks%s/checkpoints/%s" % (_notebook_path_regex, _checkpoint_id_regex),
ModifyNotebookCheckpointsHandler),
- (r"/api/notebooks/?%s" % _notebook_path_regex, NotebookHandler),
- (r"/api/notebooks/?%s/?" % _path_regex, NotebookHandler),
+ (r"/api/notebooks%s" % _notebook_path_regex, NotebookHandler),
+ (r"/api/notebooks%s" % _path_regex, NotebookHandler),
]
diff --git a/IPython/html/tree/handlers.py b/IPython/html/tree/handlers.py
index 01b23cd..6c6c564 100644
--- a/IPython/html/tree/handlers.py
+++ b/IPython/html/tree/handlers.py
@@ -64,10 +64,8 @@ class TreeRedirectHandler(IPythonHandler):
default_handlers = [
- (r"/tree/(.*)/", TreeRedirectHandler),
- (r"/tree/?%s" % _notebook_path_regex, TreeHandler),
- (r"/tree/?%s" % _path_regex, TreeHandler),
- (r"/tree/", TreeRedirectHandler),
+ (r"/tree%s" % _notebook_path_regex, TreeHandler),
+ (r"/tree%s" % _path_regex, TreeHandler),
(r"/tree", TreeHandler),
(r"/", TreeRedirectHandler),
]