通配符 DNS 条目匹配 lang 子域名

通配符 DNS 条目匹配 lang 子域名

我们有一个指向 xxx1 的网站 www.example.com,还有一个包含多个迷你网站的系统,所有迷你网站都有指向 xxx2 的 subdomains.examples.com

基本上,我们所拥有的是一个通配符 DNS 条目,它基本上可以匹配任何可能的子域,一旦到达 xxx2,apache vhost 就会拦截并将其重定向到一个 php 脚本,而该脚本反过来会知道要提供哪些小型网站。

然而,在 www.example.com 上,我们提供的内容被翻译成多种语言,直到几周前,你还可以通过点击标志来切换语言,然后你就会看到翻译的内容。唯一的问题是 URL 不会改变,从 SEO 角度来看,这不是最好的解决方案。

现在我无法改变子域名的处理方式(重定向到 xxx2),因为我们有数百个甚至数千个小型网站。

我必须想出一个解决方案,让 language.example.com 重定向到 xxx1,然后重写规则,基本上将虚假子域名重写为 URL,以便将语言参数传递给 example.com

一种解决方案是将所有可能的语言列为 DNS 条目,紧接着是通配符 DNS 条目。另一种解决方案(我几乎确定不可行)是在 DNS 条目中使用某种正则表达式匹配所有包含 2 个字母的子域(en|es|fr|cn|cl 等...)

有任何想法吗?

答案1

您无法在 DNS 中进行两个字母的匹配,通配符专门匹配一个或多个标签,这就是 DNS 中模式匹配的全部范围。

您是否考虑过改用www.example.com/language/

然后,在您的重写规则中,您可以(例如)en.example.com重定向到www.example.com/en/,并且可以根据检查该特定语言的子目录是否存在的条件测试来完成。

如果该子目录没有匹配项,则它将代表您的一个微型网站。

答案2

你有没有考虑过 :
http://mysql-bind.sourceforge.net/

相关内容