如果它是I18n,如何从根URL中删除参数
过时(至少对谷歌来说)
最近我研究了一下SEO,发现搜索引擎在某种程度上“不喜欢”URL中的参数。 可理解,因为它们不是真正的人类可读或往往不是永久性的。
现在的问题是,如果我按照Rails指南设置I18n然后想要链接到root_path
怎么办? 它链接到根,但在URL中添加了?locale=en
。 所以http://www.example.com/?locale=de
。
即使SEO不再受此影响,我认为如果URL看起来像http://www.example.com/en
而不是http://www.example.com/?locale=en
,它看起来会更好。
我找到了一个非常简单的解决方案。
我刚刚添加了另一条路由到我的routes.rb
名为i18n_root
。
例:
Rails.application.routes.draw do root 'welcome#index' # ... get ':locale' => 'welcome#index', as: :i18n_root end
现在我只需要将i18n_root_path
添加到链接到根路径的链接,一切正常。
返回的url:
http://www.example.com/en
另一个可能的解决方案,如果我在应用程序中已经有很多链接,那就是创建一个自定义根目录。
例:
Rails.application.routes.draw do # root 'welcome#index' <= We don't want to have a default root # ... get ':locale' => 'welcome#index', as: :root end
希望这也有助于其他人。