我想打开我的子域 admin.example.com 并直接进入管理员登录页面,而不需要前面的 index.html 页面并告诉我该页面处于生产环境中,以提高客户的可用性并避免愚蠢的事情如 admin.example.com/admin。
也许我可以用中间件来做到这一点,但我一无所知。
我正在使用heroku。
谢谢你
目前不支持。
目前我们不支持从根为管理员提供服务,作为功能请求添加
参见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
}
}
}
添加@Letik的答案。
src/middlewares/redirect.js
module.exports = (config, { strapi }) => {
return async (ctx, next) => {
if (ctx.request.url === "/") {
ctx.redirect("/admin");
} else {
await next();
}
};
};
src/config/middlewares.ts
export default [
//...the existing strapi middlewares
{ resolve: "../middlewares/redirect.js" },
"strapi::public",
];
注意:确保您的自定义重定向中间件在
strapi::public
中间件之前注册,以便它可以拦截对根URL的请求。