Я строю блог с поддержкой нескольких языков. URL содержат языковые ключи, например /en/blog
. Я столкнулся с проблемой с локализацией 404 страниц. То, что описано здесь https://www.gatsbyjs.org/docs/creating-prefixed-404-pages-for-different-languages/, хорошо работает для всех маршрутов, кроме домашней страницы. Домашняя страница имеет следующий URL www.test.com/en
, и заканчивается 404 страницей из-за этого регулярного выражения /^\/[a-z]{2}\/404\/$/
Я попытался передать регулярное выражение ^\/?[a-z]{2}\/.+
для соответствия всем маршрутам, кроме /en
, кроме matchPath
не похоже, кроме регулярных выражений.
Страницы ранжируются под капотом;однако, похоже, что к /en
и /en/does-not-exist
относятся одинаково, или последний имеет приоритет над первым.
Интересно, сталкивался ли кто-то с этой проблемой раньше и, возможно, был ли обходной путь.
На данный момент у меня есть общий 404, а также отдельные 404 страницы для всех доступных языков. В универсальном 404 я хочу перенаправить к языковой версии 404. Это добавляет сложности, которую я хотел бы избежать.
Любая помощь приветствуется. Спасибо!