diff --git a/djblets/configforms/views.py b/djblets/configforms/views.py
index 8a225e7c2f70d26cec4b03f2214300148b6f22ac..ff9685ed7cb402023bfe32280be468102dd4a146 100644
--- a/djblets/configforms/views.py
+++ b/djblets/configforms/views.py
@@ -70,7 +70,7 @@ class ConfigPagesView(TemplateView):
         form = form_cls(page, request, request.user, request.POST)
         self.forms[form_id] = form
 
-        # Replace the form in the pgae.
+        # Replace the form in the page.
         for i, page_form in enumerate(page.forms):
             if page_form.form_id == form_id:
                 page.forms[i] = form
diff --git a/djblets/static/djblets/js/configForms/views/pagesView.js b/djblets/static/djblets/js/configForms/views/pagesView.js
index 922ba39f2e61e6acdde8a64e4af172090e135928..aa174e61f8f859886567b2c6aeb4cf5e6fc3ade2 100644
--- a/djblets/static/djblets/js/configForms/views/pagesView.js
+++ b/djblets/static/djblets/js/configForms/views/pagesView.js
@@ -58,17 +58,31 @@ Djblets.Config.PagesView = Backbone.View.extend({
         this._$activeNav.removeClass('active');
         this._$activePage.removeClass('active');
 
-        this._$activeNav =
-            this._$pageNavs.filter(':has(a[href=#' + pageID + '])')
-                .addClass('active');
+        this._$activePage = $('#page_' + pageID);
 
-        this._$activePage = $('#page_' + pageID)
-            .addClass('active');
+        if (this._$activePage.length === 0) {
+            /*
+             * If the requested page doesn't exist (for example, it might be
+             * hidden, or just typoed), load the first page instead.
+             */
+            this.router.navigate(
+                this._$pageNavs.find('a').attr('href').substr(1),
+                {
+                    trigger: true,
+                    replace: true
+                });
+        } else {
+            this._$activeNav =
+                this._$pageNavs.filter(':has(a[href=#' + pageID + '])')
+                    .addClass('active');
 
-        if (!this._preserveMessages) {
-            $('#messages').remove();
-        }
+            this._$activePage.addClass('active');
+
+            if (!this._preserveMessages) {
+                $('#messages').remove();
+            }
 
-        this._preserveMessages = false;
+            this._preserveMessages = false;
+        }
     }
 });
