Apache proxypass和多语言域

Apache proxypass和多语言域,apache,mod-rewrite,reverse-proxy,mod-proxy,mod-proxy-html,Apache,Mod Rewrite,Reverse Proxy,Mod Proxy,Mod Proxy Html,我在domain.com上有一个网站,在URL中有多语言内容,例如: domain.com/en为英语 domain.com/de代表德语 domain.com/it for意大利语 等等。这些不是真正的目录-这些只是重写到/index.php?lang=。。。所以domain.com/lang/one/two/three被重写为/index.php?lang=$1&path=$2 它还有domain.com/assets目录,其中包含所有常用文件(css、图像等) 现在我想改变的是,每种语

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

  • domain.com/en为英语
  • domain.com/de代表德语
  • domain.com/it for意大利语
等等。这些不是真正的目录-这些只是重写到/index.php?lang=。。。所以domain.com/lang/one/two/three被重写为/index.php?lang=$1&path=$2

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

现在我想改变的是,每种语言都有自己的域,我认为可以通过在Apache中使用mod_proxy、mod_proxy和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,以便针对每种语言使用不同的域…

这是可能的。只需在一个virtualhost中处理它们,并使用RewriteCond检查%{HTTP_HOST},然后执行今天已经完成的相同重写。您可以捕获国家代码并使用%1进行反向引用。

问题是CMS生成的所有内部链接(包括css和js)都包含完整的www.domain.com/lang/。。。。。网址。如果我们希望CMS生成www.domain.lang URL,那么我们必须重写整个CMS。这就是为什么我正在寻找一种解决方案,它可以将HTML文档中的所有URL更改为正确的域,并且从我在互联网上读到的内容来看,apache的mod_proxy_HTML可以做到这一点——但我无法配置它,无论我尝试了什么都无法实现