Kaynağa Gözat

fix not redirecting custom domain to homepage for preserved urls

Pouria Ezzati 1 yıl önce
ebeveyn
işleme
a95ac33e4c

+ 10 - 12
server/handlers/links.handler.js

@@ -576,28 +576,26 @@ async function redirectProtected(req, res) {
 };
 
 async function redirectCustomDomainHomepage(req, res, next) {
-  const path = req.path;
   const host = utils.removeWww(req.headers.host);
-
   if (host === env.DEFAULT_DOMAIN) {
-    return next();
+    next();
+    return;
   }
 
+  const path = req.path;
+  const pathName = path.replace("/", "").split("/")[0];
   if (
     path === "/" ||
-    utils.preservedURLs
-      .filter(l => l !== "url-password")
-      .some(item => item === path.replace("/", ""))
+    utils.preservedURLs.includes(pathName)
   ) {
     const domain = await query.domain.find({ address: host });
-    const redirectURL = domain
-      ? domain.homepage
-      : `https://${env.DEFAULT_DOMAIN + path}`;
-
-    return res.redirect(302, redirectURL);
+    if (domain?.homepage) {
+      res.redirect(302, domain.homepage);
+      return;
+    }
   }
 
-  return next();
+  next();
 };
 
 async function stats(req, res) {

+ 0 - 7
server/handlers/renders.handler.js

@@ -9,13 +9,6 @@ const env = require("../env");
 **/
 
 async function homepage(req, res) {
-  // redirect to custom domain homepage if it is set by user
-  const host = utils.removeWww(req.headers.host);
-  const domain = host !== env.DEFAULT_DOMAIN ? await query.domain.find({ address: host }) : null;
-  if (domain?.homepage) {
-    return res.redirect(domain.homepage);
-  }
-  
   // redirect to create admin page if the kutt instance is ran for the first time
   const isThereAUser = await query.user.findAny();
   if (!isThereAUser) {

+ 3 - 3
server/server.js

@@ -52,12 +52,12 @@ app.set("view engine", "hbs");
 app.set("views", path.join(__dirname, "views"));
 utils.registerHandlebarsHelpers();
 
-// render html pages
-app.use("/", routes.render);
-
 // if is custom domain, redirect to the set homepage
 app.use(asyncHandler(links.redirectCustomDomainHomepage));
 
+// render html pages
+app.use("/", routes.render);
+
 // handle api requests
 app.use("/api/v2", routes.api);
 app.use("/api", routes.api);