diff --git a/docusaurus/docs/dev-docs/deployment/snippets-proxy/admin-redirect.md b/docusaurus/docs/dev-docs/deployment/snippets-proxy/admin-redirect.md index 98ffb2d138..ce6ef13fe9 100644 --- a/docusaurus/docs/dev-docs/deployment/snippets-proxy/admin-redirect.md +++ b/docusaurus/docs/dev-docs/deployment/snippets-proxy/admin-redirect.md @@ -26,3 +26,39 @@ module.exports = (_config, { strapi }) => { strapi.server.routes(redirects); }; ``` + +### Shipping your own pages on / instead of the strapi landing page + +If you do not wish to have the default landing page mounted on `/` you can create a custom middleware using the sample code below to automatically redirect to your custom `index.html` in the `./public` folder. + +```js title="./config/middlewares.js" +module.exports = ({ env }) => [ + // ... + { resolve: '../src/middlewares/root' }, +]; + +``` + +```js title="./src/middlewares/root.js" +const fs = require('fs'); +const path = require('path'); + +module.exports = (_config, { strapi }) => { + const redirects = ['/', '/index.html'].map((routePath) => ({ + method: 'GET', + path: routePath, + handler: (ctx) => { + // Read the index.html file + const filePath = path.resolve(__dirname, '../../public/index.html'); + const fileContents = fs.readFileSync(filePath, 'utf8'); + + // Set the Content-Type header and send the file contents + ctx.type = 'html'; + ctx.body = fileContents; + }, + config: { auth: false }, + })); + + strapi.server.routes(redirects); +}; +```