Rails 重定向到同一页面但添加子域

发布于 2024-11-02 05:23:41 字数 346 浏览 1 评论 0原文

如果用户位于,

blah.com/items/index

我如何

de.blah.com/items/index

以适用于任何页面的方式将他们重定向到?现在我正在使用

<%= link_to 'German', root_url(:host => 'de' + '.' + request.domain + request.port_string) %>

,但这会将它们重定向到 de.blah.com。如何保留网址的其余部分?我正在使用 Rails 3。

If a user is at

blah.com/items/index

how do I redirect them to

de.blah.com/items/index

in a way that will work for any page? Right now I'm using

<%= link_to 'German', root_url(:host => 'de' + '.' + request.domain + request.port_string) %>

but that redirects them to de.blah.com. How do I keep the rest of the url? I'm using rails 3.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

ぃ弥猫深巷。 2024-11-09 05:23:41

保持简单:

redirect_to subdomain: 'de'

Keep it simple:

redirect_to subdomain: 'de'
樱花细雨 2024-11-09 05:23:41
<%= link_to 'German', params.merge({:host => with_subdomain(:de)}) %>

在应用程序/helpers/url_helper.rb

module UrlHelper
  def with_subdomain(subdomain)
    subdomain = (subdomain || "")
    subdomain = "" if I18n.default_locale.to_s == subdomain
    subdomain += "." unless subdomain.empty?
    [subdomain, request.domain(tld_length), request.port_string].join
  end

  def url_for(options = nil)
    if options.kind_of?(Hash) && options.has_key?(:subdomain)
      options[:host] = with_subdomain(options.delete(:subdomain))
    end
    super
  end

  def tld_length
    tld_length = case Rails.env
      when 'production' then 2
      when 'development' then 0
      else 0
    end
  end 
end
<%= link_to 'German', params.merge({:host => with_subdomain(:de)}) %>

in app/helpers/url_helper.rb

module UrlHelper
  def with_subdomain(subdomain)
    subdomain = (subdomain || "")
    subdomain = "" if I18n.default_locale.to_s == subdomain
    subdomain += "." unless subdomain.empty?
    [subdomain, request.domain(tld_length), request.port_string].join
  end

  def url_for(options = nil)
    if options.kind_of?(Hash) && options.has_key?(:subdomain)
      options[:host] = with_subdomain(options.delete(:subdomain))
    end
    super
  end

  def tld_length
    tld_length = case Rails.env
      when 'production' then 2
      when 'development' then 0
      else 0
    end
  end 
end
愿与i 2024-11-09 05:23:41

使用 subdomain-fu 插件可能会很有用,它也可以作为 gem 提供。

Using the subdomain-fu plugin might prove to be useful, it is also available as a gem.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文