我正在使用多语言网站,因此我需要从基于子域的语言过渡到基于子文件夹的语言。
即来自
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`}/>
这很痛苦。
是否存在一些优雅的解决方案,可以使HTML页面中的URL表现得更像以前,但是不将域根视为example.com
而是example.com/en
(或example.com/de
),因此旧链接继续去工作?
更新:
我希望<base href="example.com/en"/>
在这种情况下会有所帮助,但不适用于以斜杠开头的URL,即href="/blog/blog-1"
会转到example.com/blog/blog-1
而不是{{1} }
P.S。如有兴趣,我正在研究基于多页面的基于React的SPA(Next.js)
谢谢。