如何将子文件夹(example.com/en)视为域根URL

时间:2019-06-27 09:50:27

标签: html url

我正在使用多语言网站,因此我需要从基于子域的语言过渡到基于子文件夹的语言。

即来自

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" />

  3. 中添加了斜杠。

但是据我了解,现在我需要重构站点中的每个链接,并将当前语言环境(ende)放在我拥有的每个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)

谢谢。

0 个答案:

没有答案