子域名、文件夹、国际化和托管解决方案

子域名、文件夹、国际化和托管解决方案

我是一名 Web 开发人员,最近我得到了一份工作,为一家在欧洲很有名但尚未在美国进行大规模扩张的公司开发美国/国际版网站。他们在 company.com 上有一个现有网站,新网站上线后,欧洲客户仍可访问该网站;在 company.us 上有一个现有网站(不是很好),我将重新开发该网站(我的版本上线后,.us 网站将被删除 - 继续阅读以了解详情)。我的解决方案需要考虑到不久的将来会有新的本地化版本,因此我编写的框架需要能够相当轻松地处理本地化(动态加载语言包等)。

棘手的是,该公司的欧洲分公司管理 .com 网站托管(基于 IIS)和 DNS,而我将管理美国托管(以及未来的本地化),这些托管很可能基于 apache。我从来都不喜欢“.us”顶级域名——我认为大多数美国用户都习惯于访问 .com——因此,我们的想法是,欧洲分公司将检测入站流量的 IP,并将所有美国地址重定向到 us.example.com(或任何适当的本地化子域),这将指向我的主机的 IP 地址。然后,我将通过从 $_SERVER 超全局变量(假设为 PHP)中提取子域来提供适当的特定于语言环境的内容。

我找不到任何采用基于子域名的方法进行本地化的国际组织的例子,但由于这里独特的托管结构(欧洲和美国网站没有统一的托管解决方案),我不确定我还有其他选择。根据我的经验,国际网站的美国版本应该位于 domain.com/us,而不是 us.domain.com,我想这与 SEO 有关(子域名被视为单独的网站,因此如果使用子域名来区分它们,那么美国网站的排名提高对加拿大版本的排名没有帮助)。

我的问题是:有没有比我所采用的方法更好的方法来解决这个问题?理想情况下,我想使用基于文件夹的方法(请参阅 adidas.com 作为我所讨论内容的示例),但我不确定这是否可行,因为美国网站(和其他本地化网站)不会与 .com 的其他部分托管在同一台服务器上。您可以在 IIS 中将文件夹(例如 domain.com/us)映射到不同的 IP 地址吗?您有什么建议?

感谢您的考虑。

答案1

好吧,您可以毫不费力地将对 company.com/us/* 的请求代理到 randomserver/*(请参阅 Apache httpd 的 mod_proxy),但性能可能会明显受到影响,并且您会引入不必要的故障点。

如果您确实想要 company.com/{country}/*,那么您应该极力推崇非独立服务器。要么是为所有人提供所有服务的单一服务器,要么是使用 GeoDNS 的复制服务器...

如果您无法做到这一点,并且美国服务器将独立运行,us.company.com 或 company.us 可能是您的更好选择。只需确保选择其中一个,然后将所有人重定向到“规范”URL。

答案2

我认为最好的解决方案是使用欧洲主机。创建 us.company.com 子域,然后将所有通过 us.company.com 的流量重定向到 company.com/us,以便使用子文件夹方法。

附言:由于您谈论的是一家跨国公司,因此您可能必须获得仅能访问该子域的 FTP 用户。

相关内容