diff --git a/middleware.test.ts b/middleware.test.ts index 26b5ae3af9f61e..72ac41e3635b63 100644 --- a/middleware.test.ts +++ b/middleware.test.ts @@ -100,6 +100,28 @@ describe('middleware redirect set selection', () => { }); }); +describe('source maps links from backend projects', () => { + it.each(['python-django', 'php', 'ruby-rails'])( + 'redirects the invalid %s guide to JavaScript source maps', + async guide => { + const {middleware} = await importMiddleware({NODE_ENV: 'production'}); + const res = middleware( + makeRequest(`/platforms/javascript/guides/${guide}/sourcemaps/`) + ); + expect(res.status).toBe(301); + expect(res.headers.get('location')).toBe( + 'http://localhost:3000/platforms/javascript/sourcemaps/' + ); + } + ); + + it('leaves the destination unchanged', async () => { + const {middleware} = await importMiddleware({}); + const res = middleware(makeRequest('/platforms/javascript/sourcemaps/')); + expect(isRedirect(res)).toBe(false); + }); +}); + describe('non-production host indexing', () => { it('adds a noindex header on localhost', async () => { const {middleware} = await importMiddleware({}); diff --git a/middleware.ts b/middleware.ts index d1c31a20b183b1..47db370b4549fe 100644 --- a/middleware.ts +++ b/middleware.ts @@ -453,6 +453,18 @@ type Redirect = { /** Note: if you want to set redirects for developer docs, set them below in `DEVELOPER_DOCS_REDIRECTS` */ const USER_DOCS_REDIRECTS: Redirect[] = [ + { + from: '/platforms/javascript/guides/python-django/sourcemaps/', + to: '/platforms/javascript/sourcemaps/', + }, + { + from: '/platforms/javascript/guides/php/sourcemaps/', + to: '/platforms/javascript/sourcemaps/', + }, + { + from: '/platforms/javascript/guides/ruby-rails/sourcemaps/', + to: '/platforms/javascript/sourcemaps/', + }, { from: '/platforms/python/http_errors/', to: '/platforms/python/integrations/django/http_errors/',