如何使用基于locale / tld的网址/路由?

时间:2012-07-15 13:26:43

标签: ruby-on-rails internationalization

是否有办法为每个语言环境/ tld设置不同的URL(特别是出于搜索引擎优化的原因)?

所以说如果我通过mysite.us来,我可以:

http://mysite.com/some-nice-url

如果通过mysite.org,我可以:

http://mysite.fr/another-very-nice-url

谢谢

1 个答案:

答案 0 :(得分:2)

你能做的是:

class ApplicationController < ActionController::Base
  ..
  before_filter :domain_locale
  protected
    def domain_locale
      I18n.locale = request.host.split('.').last
    end

  ...
end

当然,您可以在domain_locale中添加更多复杂功能。

因此,对于routes.rb,您可以添加如下约束:

match 'soem_nice-url', :to => 'nice#some', :constraints => {:host => 'mysite.com'}
match 'soem_nice-url', :to => 'nice#another', :constraints => {:host => 'mysite.fr'}