我有一个网站最终将支持 4 种语言和 2 个国家(美国和加拿大,英语和西班牙语)
我想知道设置目录结构的最佳方法是什么?
现在,我有一个名为 site.com 的根站点:
这将带您到一个页面,您可以在其中选择您的国家和语言。
理想情况下,我希望有这样的目录:
site.com/ca/en/ (Canada English)
site.com/ca/fr/ (Canada French)
site.com/us/en/ (US English)
site.com/us/es/ (US Spanish)
但这意味着我将在其中放置一个“ca”和一个“us”虚拟目录和语言虚拟目录。这是一种很好的做法,还是我应该做类似的事情:
site.com/ca-en/ (Canada English)
site.com/ca-fr/ (Canada French)
site.com/us-en/ (US English)
site.com/us-es/ (US Spanish)
编辑:我做了以下事情:
应用程序中有一个虚拟目录:/ca/ 和 /us/。它们都有一个 default.aspx,它只是一个重定向。就我而言,我将他们重定向到他们的英语网站:
例如:site.com/ca/ --> site.com/ca/en/site.com/us/ --> site.com/us/en/
如果输入 site.com,您将被推送到语言选择页面。基本上,我在每个请求中都使用 Global.asax 中的正则表达式来查找语言/文化字符串。
这有以下好处。国家分离。因此,您可以控制 site.com/ca/ 或 site.com/us/,并且能够为每个国家/地区提供一个简单的 URL。
无论如何,虚拟目录 /en/、/fr/ 和 /es/ 都在它们各自国家的物理文件夹中。
所以你有以下内容(虚拟目录以粗体显示):
site.com/ca/en/ (默认)site.com/ca/fr/site.com/us/en/(默认)site.com/us/es/
这意味着您需要有五个(相同的)应用程序,除了您可以使用 URL 获取当前语言和国家/地区(并将其指向正确的数据库)。