Я работаю на многоязычном сайте, и мне нужно перейти с языков на субдоменах на языки, основанные на подпапках.
Т.е. с
en.example.com/post-1
de.example.com/post-1
На
example.com/en/posts/post-1
example.com/de/posts/post-1
Проблема в том, что у меня уже есть много ссылок (<a>
тегов) по всему сайту, определяемых следующимэто правила:
, если пользователь в настоящее время посещает /posts/post-1
Я мог бы сделать это: <a href="post-2" />
, и он перенаправит пользователя на example.com/posts/post-2
правильно.
Если мне нужно перейти на другую страницу корневого уровня, я просто добавил начальную косую черту в URL: <a href="/blogs/blog-1" />
Но, как я понимаю, теперь мне нужно провести рефакторинг каждой ссылки всайта и добавьте текущую локаль (en
, de
) к каждому URL, который у меня есть.Вот так: <a href={`/${CURRENT_LOCALE}/blogs/blog-1`}/>
Это больно.
Существует ли какое-то элегантное решение, позволяющее URL-адресам на HTML-странице вести себя как раньше, но рассматривать корень домена не как example.com
, а как example.com/en
(или example.com/de
), чтобы старые ссылки продолжали работать?
ОБНОВЛЕНИЕ :
Я надеялся, что <base href="example.com/en"/>
поможет в этом случае, но это не работает для URL, начинающихся с косой черты, то есть href="/blog/blog-1"
перейдите на example.com/blog/blog-1
вместо example.com/en/blog/blog-1
PS Если интересно, я работаю над многостраничным SPA на основе React (Next.js)
Спасибо.