将 Strapi 管理员索引重定向到管理员登录
Redirect Strapi admin index to admin login
我目前正在寻找创建从默认 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
}
}
}
不幸的是,我仍然可以在不被重定向的情况下访问管理面板路由。根据我所阅读的所有内容,这应该是可能的,但我无法让它工作。
想法?
这里唯一的问题是您只是将重定向中间件放在了绝对不需要的 admin
文件夹中。 middlewares
文件夹应直接位于项目的根目录下。
更正路径来自:
./admin/middlewares/redirect/index.js
为此:
./middlewares/redirect/index.js
我可以在下面向您展示我亲自尝试过的方法:
我的实现:
1. 在项目的根目录中创建一个目录
$ mkdir -p ./middlewares/redirector/
2.在./middlewares/redirector/
中创建一个index.js
文件,内容为:
module.exports = () => {
return {
initialize() {
strapi.router.get('/', (ctx) => {
ctx.redirect(strapi.config.get('server.admin.url', '/admin'));
});
},
};
};
3.最后在config/middleware.js
文件中启用重定向器中间件:
module.exports = {
settings: {
redirector: {
enabled: true,
},
},
};
对于较新的版本 v4+
src/middlewares/redirector.js
module.exports = (config, {strapi}) => {
return async (ctx, next) => {
if (ctx.path === '/') {
ctx.redirect(strapi.config.get('server.admin.url', '/admin'));
return
}
await next()
};
};
config/middlewares.js
module.exports = [
{name: 'global::redirector'},
//...
]
我目前正在寻找创建从默认 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
}
}
}
不幸的是,我仍然可以在不被重定向的情况下访问管理面板路由。根据我所阅读的所有内容,这应该是可能的,但我无法让它工作。
想法?
这里唯一的问题是您只是将重定向中间件放在了绝对不需要的 admin
文件夹中。 middlewares
文件夹应直接位于项目的根目录下。
更正路径来自:
./admin/middlewares/redirect/index.js
为此:
./middlewares/redirect/index.js
我可以在下面向您展示我亲自尝试过的方法:
我的实现:
1. 在项目的根目录中创建一个目录
$ mkdir -p ./middlewares/redirector/
2.在./middlewares/redirector/
中创建一个index.js
文件,内容为:
module.exports = () => {
return {
initialize() {
strapi.router.get('/', (ctx) => {
ctx.redirect(strapi.config.get('server.admin.url', '/admin'));
});
},
};
};
3.最后在config/middleware.js
文件中启用重定向器中间件:
module.exports = {
settings: {
redirector: {
enabled: true,
},
},
};
对于较新的版本 v4+
src/middlewares/redirector.js
module.exports = (config, {strapi}) => {
return async (ctx, next) => {
if (ctx.path === '/') {
ctx.redirect(strapi.config.get('server.admin.url', '/admin'));
return
}
await next()
};
};
config/middlewares.js
module.exports = [
{name: 'global::redirector'},
//...
]