Home > database >  Redirect Strapi admin index to admin login
Redirect Strapi admin index to admin login

Time:10-01

I am currently looking for way to create a permanent 301 redirect from the default Strapi admin index route (ie strapidomain.com) to the configured admin route (ie strapidomain.com/admin).

I have explored utilizing a custom middleware by configuring the admin package:

Path: ./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'))
      });
    }
  };
};

I then activated the custom middleware with:

Path: ./admin/config/middleware.js

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

Unfortunately I can still hit the admin panel route without being redirected. Based on everything I have read, this should be possible however I have not been able to get this working.

Thoughts?

CodePudding user response:

The only issue here is that you just placed the redirect middleware within a admin folder which was absolutely not required. The middlewares folder should directly reside at the root of your project.

Correct the path from:
./admin/middlewares/redirect/index.js

To this:
./middlewares/redirect/index.js

I can show you what I've tried personally, below:

My implementation:

1. Create a directory in the root of your project
$ mkdir -p ./middlewares/redirector/

2. Create a index.js file in ./middlewares/redirector/ with the content as:

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

3. Finally enable the redirector middleware in the config/middleware.js file:

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

  • Related