首页 > 解决方案 > 将 Strapi 管理员索引重定向到管理员登录

问题描述

我目前正在寻找方法来创建从默认 Strapi 管理索引路由(即strapidomain.com)到配置的管理路由(即strapidomain.com/admin)的永久 301 重定向。

我通过配置管理包探索了使用自定义中间件:

小路:./admin/middlewares/redirect/index.js

const path = require('path');

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

然后我激活了自定义中间件:

小路:./admin/config/middleware.js

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

不幸的是,我仍然可以在没有被重定向的情况下点击管理面板路由。根据我所阅读的所有内容,这应该是可能的,但是我无法使其正常工作。

想法?

标签: redirectroutesadminstrapi

解决方案


这里唯一的问题是您只是将重定向中间件放在一个admin绝对不需要的文件夹中。该middlewares文件夹应直接位于项目的根目录。

更正路径
./admin/middlewares/redirect/index.js

对此:
./middlewares/redirect/index.js

我可以向您展示我个人尝试过的内容,如下所示:

我的实现:

1.在你的项目根目录下创建一个目录
$ mkdir -p ./middlewares/redirector/

2.在其中创建一个index.js文件,./middlewares/redirector/内容为:

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

3.最后在文件中启用redirector中间件config/middleware.js

module.exports = {
  settings: {
    redirector: {
      enabled: true,
    },
  },
};


推荐阅读