Google app engine URL中区域设置的webapp2路由
webapp2 i18n文档中有一个在参数中指定区域设置的示例,例如:Google app engine URL中区域设置的webapp2路由,google-app-engine,internationalization,locale,webapp2,Google App Engine,Internationalization,Locale,Webapp2,webapp2 i18n文档中有一个在参数中指定区域设置的示例,例如: www.example.com?locale=en_US 但谷歌搜索控制台说这是一个错误 我想改为将区域设置放在URL中,如下所示: www.example.com www.example.com/about www.example.com/contact www.example.com/fr www.example.com/fr/about www.example.com/fr/contact Route(r'/pag
www.example.com?locale=en_US
但谷歌搜索控制台说这是一个错误
我想改为将区域设置放在URL中,如下所示:
www.example.com
www.example.com/about
www.example.com/contact
www.example.com/fr
www.example.com/fr/about
www.example.com/fr/contact
Route(r'/page', views.PageHandler),
Route(r'/<locale:\w\w>/page', views.PageHandler),
设置webapp2路由并将区域设置作为参数传递给处理程序的好方法是什么?如果您想尝试我的方法:设置正则表达式(
app=webapp2.WSGIApplication([('/([^/]+)/?([^/]*),RegionSearch)],config=settings.w2config,debug=settings.debug)
,然后“继续”模板的参数,您可以在其中为许多不同的地区、时区和货币设置任意定位
{% if request.... == "..." %} # depend on values in the request
{% set currency = "SEK" %}
{% set format = "sv_SE" %}
{% set timezoneinfo = 'Europe/Stockholm' %}
{% set locale = "se" %}
{% endif %}
我最终使用了Dj Dac答案的变体。我将每条路线替换为如下两条路线:
www.example.com
www.example.com/about
www.example.com/contact
www.example.com/fr
www.example.com/fr/about
www.example.com/fr/contact
Route(r'/page', views.PageHandler),
Route(r'/<locale:\w\w>/page', views.PageHandler),
Route(r'/page',views.PageHandler),
路由(r'//page',views.PageHandler),
不带区域设置的路由提供默认值,也用于x-default hreflang标记。FWIW-该链接中的“不推荐”可能是错误的-它位于
Pros
列上(也缺少解释)。如果我不喜欢这个想法,我可能会忽略它。@DanCornilescu,我在其他地方也看到过同样的建议,所以我不认为这是一个错误。无论如何,我都很想这么做,因为这是一个非常简单的解决方案,但另一方面,如果我需要……是的,我知道你的意思。一个解释会很痛苦帮助做出决定。在另一个地方有吗?@DanCornilescu,是的,尽管我不完全理解。这涉及到谷歌索引,能够理解你有一个多语言网站,并且能够通过分析工具跟踪网站不同语言版本的流量。鉴于谷歌搜索结果的重要性s、 我想遵循他们的最佳实践!啊,我现在明白了。是的,这可能很重要。