Как обрабатывать подпапку (example.com/en) как корневой URL домена - PullRequest
0 голосов
/ 27 июня 2019

Я работаю на многоязычном сайте, и мне нужно перейти с языков на субдоменах на языки, основанные на подпапках.

Т.е. с

en.example.com/post-1
de.example.com/post-1

На

example.com/en/posts/post-1
example.com/de/posts/post-1

Проблема в том, что у меня уже есть много ссылок (<a> тегов) по всему сайту, определяемых следующимэто правила:

  1. , если пользователь в настоящее время посещает /posts/post-1 Я мог бы сделать это: <a href="post-2" />, и он перенаправит пользователя на example.com/posts/post-2 правильно.

  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)

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...