diff --git a/app/Http/Controllers/Api/SearchApiController.php b/app/Http/Controllers/Api/SearchApiController.php
index 8fb249665..ba960b9d2 100644
--- a/app/Http/Controllers/Api/SearchApiController.php
+++ b/app/Http/Controllers/Api/SearchApiController.php
@@ -13,8 +13,8 @@ class SearchApiController extends ApiController
 
     protected $rules = [
         'all' => [
-            'query' => ['required'],
-            'page'  => ['integer', 'min:1'],
+            'query'  => ['required'],
+            'page'   => ['integer', 'min:1'],
             'count'  => ['integer', 'min:1', 'max:100'],
         ],
     ];
@@ -58,10 +58,8 @@ class SearchApiController extends ApiController
         }
 
         return response()->json([
-            'data' => $results['results'],
+            'data'  => $results['results'],
             'total' => $results['total'],
         ]);
     }
-
-
 }
diff --git a/app/Http/Controllers/AttachmentController.php b/app/Http/Controllers/AttachmentController.php
index 445611fcb..084f6f96a 100644
--- a/app/Http/Controllers/AttachmentController.php
+++ b/app/Http/Controllers/AttachmentController.php
@@ -9,7 +9,6 @@ use BookStack\Uploads\Attachment;
 use BookStack\Uploads\AttachmentService;
 use Exception;
 use Illuminate\Contracts\Filesystem\FileNotFoundException;
-use Illuminate\Foundation\Http\Middleware\ValidatePostSize;
 use Illuminate\Http\Request;
 use Illuminate\Support\MessageBag;
 use Illuminate\Validation\ValidationException;
diff --git a/resources/views/pages/parts/form.blade.php b/resources/views/pages/parts/form.blade.php
index f6f0143da..01f68a6c5 100644
--- a/resources/views/pages/parts/form.blade.php
+++ b/resources/views/pages/parts/form.blade.php
@@ -20,7 +20,8 @@
         <div class="grid third no-break v-center">
 
             <div class="action-buttons text-left px-m py-xs">
-                <a href="{{ back()->getTargetUrl() }}" class="text-button text-primary">@icon('back')<span class="hide-under-l">{{ trans('common.back') }}</span></a>
+                <a href="{{ $page->draft ? $page->getParent()->getUrl() : $page->getUrl() }}"
+                   class="text-button text-primary">@icon('back')<span class="hide-under-l">{{ trans('common.back') }}</span></a>
             </div>
 
             <div class="text-center px-m py-xs">
diff --git a/tests/Entity/PageEditorTest.php b/tests/Entity/PageEditorTest.php
index 652bc1336..c06aa5bf1 100644
--- a/tests/Entity/PageEditorTest.php
+++ b/tests/Entity/PageEditorTest.php
@@ -3,6 +3,7 @@
 namespace Tests\Entity;
 
 use BookStack\Entities\Models\Book;
+use BookStack\Entities\Models\Chapter;
 use BookStack\Entities\Models\Page;
 use Tests\TestCase;
 
@@ -74,4 +75,31 @@ class PageEditorTest extends TestCase
             'draft'    => false,
         ]);
     }
+
+    public function test_back_link_in_editor_has_correct_url()
+    {
+        /** @var Book $book */
+        $book = Book::query()->whereHas('pages')->whereHas('chapters')->firstOrFail();
+        $this->asEditor()->get($book->getUrl('/create-page'));
+        /** @var Chapter $chapter */
+        $chapter = $book->chapters()->firstOrFail();
+        /** @var Page $draft */
+        $draft = $book->pages()->where('draft', '=', true)->firstOrFail();
+
+        // Book draft goes back to book
+        $resp = $this->get($book->getUrl("/draft/{$draft->id}"));
+        $resp->assertElementContains('a[href="' . $book->getUrl() . '"]', 'Back');
+
+        // Chapter draft goes back to chapter
+        $draft->chapter_id = $chapter->id;
+        $draft->save();
+        $resp = $this->get($book->getUrl("/draft/{$draft->id}"));
+        $resp->assertElementContains('a[href="' . $chapter->getUrl() . '"]', 'Back');
+
+        // Saved page goes back to page
+        $this->post($book->getUrl("/draft/{$draft->id}"), ['name' => 'Updated', 'html' => 'Updated']);
+        $draft->refresh();
+        $resp = $this->get($draft->getUrl('/edit'));
+        $resp->assertElementContains('a[href="' . $draft->getUrl() . '"]', 'Back');
+    }
 }