diff --git a/public/src/ajaxify.js b/public/src/ajaxify.js
index 76b1a545ba..32bcfdf8da 100644
--- a/public/src/ajaxify.js
+++ b/public/src/ajaxify.js
@@ -423,16 +423,34 @@ ajaxify = window.ajaxify || {};
 $(document).ready(function () {
 	$(window).on('popstate', function (ev) {
 		ev = ev.originalEvent;
+		let url = ev.state.url;
+		const execute = function () {
+			ajaxify.go(url, function () {
+				$(window).trigger('action:popstate', { url: url });
+			}, true);
+		};
 
 		if (ev !== null && ev.state) {
-			if (ev.state.url === null && ev.state.returnPath !== undefined) {
+			if (url === null && ev.state.returnPath !== undefined) {
 				window.history.replaceState({
 					url: ev.state.returnPath,
 				}, ev.state.returnPath, config.relative_path + '/' + ev.state.returnPath);
-			} else if (ev.state.url !== undefined) {
-				ajaxify.go(ev.state.url, function () {
-					$(window).trigger('action:popstate', { url: ev.state.url });
-				}, true);
+			} else if (url !== undefined) {
+				if (url.startsWith('topic/')) {
+					// Check topic exists
+					fetch(`${config.relative_path}/${url}`, {
+						method: 'HEAD',
+						cache: 'no-cache',
+					}).then((res) => {
+						if (res.status === 404) {
+							url = '';
+						}
+
+						execute();
+					});
+				} else {
+					execute();
+				}
 			}
 		}
 	});