假设我有英语版本的站点www.x.com,然后是德语版本的www.x.de,我想要做的是将所有变体指向主要虚拟主机,并使用一些隐藏参数,如?lang=de,但也具有一些文件的优先级,如如果存在德语版本的徽标,则使用德语徽标,否则文件在x.com虚拟主机中。
到目前为止,我有多个主机的工作方式,除了虚拟主机没有使用,突变网站使用代理脚本调用主页,但例如,如果图像存在于突变托管它是从它使用,否则从代理。
作为新的解决方案,我想删除代理脚本,一个多主机的东西,并在VPS上使用apache虚拟主机。
我知道它应该是(?)可以将多个别名或多个域指向服务器上的一个文件夹(虚拟主机)(顺便说一下,如何传递lang url参数?)但问题是:
是否有可能先有虚拟主机A,然后是虚拟主机B,它实际上使用了虚拟主机A,但如果虚拟主机B文件夹中存在某些请求的文件,则会使用它(作为提到的徽标文件)?
第二个解决方案是将所有的域名指向一个虚拟主机,并以某种方式改变网站脚本,以使用特定语言的某个图像子文件夹,但我想知道前一种方法是否可行。
发布于 2018-10-08 07:26:42
使用mod_rewrite,即使只有一个VirtualHost,也应该能够获取参数。但请记住,如果不使用SAN证书,您将在SSL VirtualHosts中遇到问题。否则,您可以将两个单独的VirtualHosts与适当的证书一起使用。徽标部分可能也能工作,但维护起来可能太麻烦了。
ServerName www.example.com
ServerAlias www.example.de
RewriteEngine On
# When using two VHosts you don't need this Cond or the [C] flag
RewriteCond %{HTTP_HOST} www.example.de
RewriteRule ^(.*\.php)$ $1?lang=de [C]
RewriteCond "$1-de\.jpg" -f
RewriteRule ^(logo).jpg$ logo-de.jpghttps://stackoverflow.com/questions/52689856
复制相似问题