const config = require('../../config'); const redirectHosts = ['open.lbry.com']; async function redirectMiddleware(ctx, next) { const requestHost = ctx.host; const path = ctx.path; const url = ctx.url; if (path.endsWith('/') && path.length > 1) { ctx.redirect(url.replace(/\/$/, '')); return; } if (!path.startsWith('/$/') && path.match(/^([^@/:]+)\/([^:/]+)$/)) { ctx.redirect(url.replace(/^([^@/:]+)\/([^:/]+)(:(\/.*))/, '$1:$2')); // test against path, but use ctx.url to retain parameters return; } if (redirectHosts.includes(requestHost)) { const redirectUrl = config.DOMAIN + path; ctx.redirect(redirectUrl); return; } // No redirects needed await next(); } module.exports = redirectMiddleware;