diff --git a/IPython/html/tree/handlers.py b/IPython/html/tree/handlers.py
index 9bd3d95bd..cf94e5c6c 100644
--- a/IPython/html/tree/handlers.py
+++ b/IPython/html/tree/handlers.py
@@ -36,21 +36,8 @@ class TreeHandler(IPythonHandler):
def get(self, path=''):
path = path.strip('/')
cm = self.contents_manager
- if cm.file_exists(path):
- # it's not a directory, we have redirecting to do
- model = cm.get(path, content=False)
- # redirect to /api/notebooks if it's a notebook, otherwise /api/files
- service = 'notebooks' if model['type'] == 'notebook' else 'files'
- url = url_escape(url_path_join(
- self.base_url, service, path,
- ))
- self.log.debug("Redirecting %s to %s", self.request.path, url)
- self.redirect(url)
- else:
- if not cm.dir_exists(path=path):
- # Directory is hidden or does not exist.
- raise web.HTTPError(404)
- elif cm.is_hidden(path):
+ if cm.dir_exists(path=path):
+ if cm.is_hidden(path):
self.log.info("Refusing to serve hidden directory, via 404 Error")
raise web.HTTPError(404)
breadcrumbs = self.generate_breadcrumbs(path)
@@ -61,6 +48,18 @@ class TreeHandler(IPythonHandler):
breadcrumbs=breadcrumbs,
terminals_available=self.settings['terminals_available'],
))
+ elif cm.file_exists(path):
+ # it's not a directory, we have redirecting to do
+ model = cm.get(path, content=False)
+ # redirect to /api/notebooks if it's a notebook, otherwise /api/files
+ service = 'notebooks' if model['type'] == 'notebook' else 'files'
+ url = url_escape(url_path_join(
+ self.base_url, service, path,
+ ))
+ self.log.debug("Redirecting %s to %s", self.request.path, url)
+ self.redirect(url)
+ else:
+ raise web.HTTPError(404)
#-----------------------------------------------------------------------------