【问题标题】:Expanding a website - providing different contents across different places扩展网站——在不同的地方提供不同的内容
【发布时间】:2015-01-01 14:45:09
【问题描述】:

我正在开发一个网站。目前,该网站的目标是为来自特定地理区域的用户提供服务。现在我想将其用户群扩展到另一个地区。需要为具有相同基本功能的不同区域提供不同的内容。

我最初的想法(在这里我可能听起来很菜鸟)是在不同的数据库上托管特定于不同区域的内容 -> 将用户重定向到特定域,从而在地理上映射用户。请建议它是否正确。

另外,我想知道是否需要为这些地区本地化我的网站(当前使用的语言是英语)

请发表您在这种情况下的经历以及您实现过渡的想法。

提前致谢。

【问题讨论】:

    标签: localization


    【解决方案1】:

    您如何看待用户与其特定区域内容的匹配?

    1. 是否会为他们提供可供选择的选项?
    2. 您会使用地理功能来确定位置吗?
    3. 您会使用基于服务器的反向 DNS 查找来确定位置吗?
    4. 每个地区都会有自己的“入口”网址(也就是不同的域)吗?

    前三个充满了他们自己的具体问题......

    呈现选择/菜单被认为是错误的形式,因为它增加了用户访问他们实际访问的内容所需的“点击”次数。

    虽然所有现代浏览器都非常广泛地支持地理功能,但它仍然被视为隐私问题,因为大量用户不会“允许”该功能,这意味着您必须回退到选择/无论如何,菜单方法。

    基于服务器的反向 DNS 虽然是一种常见做法,但非常不可靠,因为许多用户使用 VPN、代理、TOR 等通过这种查找方法专门掩盖他们的实际位置。

    就我个人而言,我的经验是使用完全独立的条目 URL,这些 URL 都作为虚拟域托管在单个 Web 服务器上。这为您提供了大量方法来确定用于访问您的代码的条目 URL,然后适当地格式化/自定义内容。

    确实没有必要设置单独的服务器和/或数据库来处理这些不同的域/区域。

    话虽如此,即使语言是跨地区通用的,配置您的服务器和数据库以支持 UTF-8 端到端也是一个非常好的习惯,这样如果需要支持任何特定于语言的选项将来,您将无需更改代码即可。如果您的网站将捕获任何用户生成的输入,则尤其如此。

    【讨论】:

    • 感谢您的详细见解。您能否详细说明如何在单个服务器上使用虚拟域将消除使用不同数据库的需要,因为我想根据用户的地理位置为具有相同下划线应用程序功能的用户提供完全不同的内容。
    • 不同的内容仍然只是“数据”,所以如果你使用相同的底层代码库,那么为一个区域提取数据只是同一个数据库/数据表/等中的不同键.
    • 即使您打算使用不同的代码来处理不同的区域,您仍然可以使用同一个数据库。要么使用不同的表,要么只构建基于区域的键模式。当代码托管在同一台物理服务器上时,我会尽可能使用单个数据库,因为您可以定义一个可以跨不同 servlet 使用的单个数据库连接池等。
    • 我计划在不同的地区使用相同的代码。我相信以我目前的数据库设计(尤其是使用许多第三方软件包),如果不对我的代码进行重大重组,我将无法将不同区域的数据采用到单个数据库中。我确实理解提到的关于跨不同 servlet 使用的优势,但我不确定它在我的情况下是否可以实现。
    • 我曾提到您也可以为新区域创建一组新表。这样,dB 连接本身仍然可以合并。建立一个全新的数据库是极端的。
    猜你喜欢
    • 2017-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-20
    • 2018-11-16
    • 1970-01-01
    • 2013-03-18
    相关资源
    最近更新 更多