0

我在 domain.com 上有一个网站,该网站在 URL 中包含多语言内容,例如:

  • domain.com/en 英文版
  • domain.com/de 德语
  • domain.com/it 意大利语

等等这些不是真正的目录 - 这些只是重写为 /index.php?lang=... 所以 domain.com/lang/one/two/three 被重写为 /index.php?lang=$1&path= 2美元

它还有 domain.com/assets 目录,其中包含所有常见文件(css、图像等)

现在我想改变每种语言都有自己的域,我认为可以通过在 Apache 中使用 mod_proxy、mod_proxy_http 和 mod_proxy_html 来管理。我想要实现的是,如果用户访问:

  • www.domain.com 他从 domain.com/en 获取内容
  • www.domain.de 他从 domain.com/de 获取内容
  • www.domain.it 他从 domain.com/it 获取内容

如果他从任何域(.com、.de、.it)访问 /assets 目录,他将从 domain.com/assets 获取内容。此外,如果用户访问 URL,例如 www.domain.de/something,他应该从 www.domain.com/de/something 接收内容

另一件事是在输出之前必须重写的 URL,例如浏览 domain.de 的用户根本不会去 domain.com ......

这可能吗?否则,我们将不得不重新编程整个 CMS 以使用每种语言的不同域......

4

1 回答 1

0

这是可能的。只需在单个虚拟主机中处理它们并使用 RewriteCond 检查 %{HTTP_HOST} 并执行您今天已经在执行的相同重写。您可以使用 %1 捕获国家代码并反向引用它。

于 2014-11-23T16:01:49.800 回答