Add redirects for language-less homepage requests (#20494)
* Redirect homepage to user's language * Redirect URLs with no language code * Add leading forward slash * Revert "Redirect URLs with no language code" This reverts commit f817ac1136ea0c7e11c4d61327a4445b56a2f5d6. * Simplify per @zeke * Add homepage language redirect tests * Update middleware/redirects/handle-redirects.js Co-authored-by: Kevin Heis <heiskr@users.noreply.github.com> * braces are good Co-authored-by: Kevin Heis <heiskr@users.noreply.github.com>
This commit is contained in:
@@ -1,13 +1,25 @@
|
||||
import patterns from '../../lib/patterns.js'
|
||||
import { URL } from 'url'
|
||||
import languages from '../../lib/languages.js'
|
||||
|
||||
export default function handleRedirects(req, res, next) {
|
||||
// never redirect assets
|
||||
if (patterns.assetPaths.test(req.path)) return next()
|
||||
|
||||
// blanket redirects for languageless homepage to English homepage
|
||||
// blanket redirects for languageless homepage
|
||||
if (req.path === '/') {
|
||||
return res.redirect(301, '/en')
|
||||
let language = 'en'
|
||||
|
||||
// if set, redirect to user's preferred language translation or else English
|
||||
if (
|
||||
req.context.userLanguage &&
|
||||
languages[req.context.userLanguage] &&
|
||||
!languages[req.context.userLanguage].wip
|
||||
) {
|
||||
language = req.context.userLanguage
|
||||
}
|
||||
|
||||
return res.redirect(301, `/${language}`)
|
||||
}
|
||||
|
||||
// begin redirect handling
|
||||
|
||||
Reference in New Issue
Block a user