如何在strapi中使用根路由(/)作为/admin

问题描述 投票:0回答:2

我想打开我的子域 admin.example.com 并直接进入管理员登录页面,而不需要前面的 index.html 页面并告诉我该页面处于生产环境中,以提高客户的可用性并避免愚蠢的事情如 admin.example.com/admin。

也许我可以用中间件来做到这一点,但我一无所知。

我正在使用heroku。

谢谢你

strapi
2个回答
4
投票

目前不支持

目前我们不支持从根为管理员提供服务,作为功能请求添加

参见https://github.com/strapi/strapi/issues/9302

解决方法

您可以使用

自定义中间件
/
重定向到 /admin

创建中间件

您可能需要创建目录 (

mkdir -p middlewares/redirect/
)。

// middlewares/redirect/index.js

module.exports = () => {
  return {
    initialize() {
      strapi.router.get('/', (ctx) => {
        ctx.redirect(strapi.config.get('server.admin.url', '/admin'))
      })
    },
  };
};

启用它

// config/middleware.js

module.exports = {
  settings: {
    redirect: {
      enabled: true
    }
  }
}

0
投票

添加@Letik的答案。

Strapi v4

  1. src/middlewares/redirect.js
module.exports = (config, { strapi }) => {
  return async (ctx, next) => {
    if (ctx.request.url === "/") {
      ctx.redirect("/admin");
    } else {
      await next();
    }
  };
};
  1. src/config/middlewares.ts
export default [
  //...the existing strapi middlewares
  { resolve: "../middlewares/redirect.js" },
  "strapi::public",
];

注意:确保您的自定义重定向中间件在

strapi::public
中间件之前注册,以便它可以拦截对根URL的请求。

© www.soinside.com 2019 - 2024. All rights reserved.