我们有一个指向xxx1的网站www.example.com和一个带有多个小型站点的系统,它们都有子站点.examples.com指向xxx2
基本上我们已经有了一个通配符DNS条目,它可以匹配任何可能的子域名,一旦到达xxx2,apache虚拟主机将拦截并基本上将其redirect到一个php脚本,而这个脚本又会知道服务的微型服务器。
然而,在www.example.com上,我们的服务器内容是以多种语言翻译的,直到几个星期前,您可以通过点击一个标志来切换语言,并且您将获得翻译的内容。 唯一的问题是,URL不会改变,SEO明智这不是最好的解决scheme。
现在我不能改变子域的处理方式(被redirect到xxx2),因为我们拥有数百个,甚至数千个迷你小站。
我必须想出一个解决scheme,让language.example.comredirect到xxx1,然后是一个重写规则,它将基本上将假子域重写为一个URL,以便将该语言的parameter passing给example.com
解决scheme是在通配符DNS条目之前将所有可能的语言列为DNS条目。 我几乎可以肯定的另一种解决scheme是不可行的是,在DNS条目中匹配具有2个字母的所有子域的某种正则expression式(en | es | fr | cn | cl等等)
有任何想法吗?
您不能在DNS中进行双字母匹配,通配符特别匹配一个或多个标签,这就是DNS中模式匹配的全部范围。
您是否考虑过使用www.example.com/language/ ?
然后,在您的重写规则中,您可以(例如)将en.example.comredirect到www.example.com/en/ ,并且可以根据条件testing进行检查,以检查该特定语言的子目录是否存在。
如果没有该子目录的匹配项,则代表您的一个小型站点。
你有没有考虑过 :
http://mysql-bind.sourceforge.net/