Примечание: Пока вы упоминаете v4 alpha, я собираюсь использовать бета-код (неизданный, но доступный через ветвь v4 в репо).
По существу, вы должны определить любой pathname
, который начинается с сегмента en
, разбивает его на остальные сегменты URL и перенаправляет на все остальное pathname
.
В качестве регулярного выражения вы можете сопоставить это с /^\/en(\/.*)?$/
. React Router использует path-to-regexp
для сопоставления имен путей, которые поддерживают регулярные выражения, но React Router не работает (по крайней мере, не напрямую). Тем не менее, вы можете настроить путь, который будет соответствовать этому, используя неназванные параметры.
<Route path='/en(/*)' component={EnRedirect} />
Это должно соответствовать /en
, /en
и /en/hi
, но не /english
. Затем в компоненте вам нужно разбить согласованный url
на сегменты, удалить en
, вернуться в сегменты и перенаправить.
const EnRedirect = ({ match }) => {
const parts = match.url.split('/')
parts.splice(1,1)
const to = parts.join('/')
return <Redirect to={to} />
}
Вы хотите перенаправить URL-адреса? или визуализировать разные компоненты? Не могли бы вы опубликовать то, что вы пробовали? Возможно, это объяснит, что вы хотите сделать немного больше. – azium