我目前正在寻找从默认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
}
}
}
不幸的是,我仍然可以击中管理面板路由没有被重定向。根据我所读到的一切,这应该是可能的,但我还没有能够得到这个工作。
想法吗?
更新版本为v4+
src/中间件)/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()
};
};
配置/middlewares.js
module.exports = [
{name: 'global::redirector'},
//...
]
这里唯一的问题是您刚刚将重定向中间件放在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,
},
},
};