ruby-on-rails Rails:重定向到当前路径,但子域不同

cdmah0mi  于 2022-12-15  发布在  Ruby
关注(0)|答案(4)|浏览(158)

我想这应该很容易,但我不熟悉它是如何做到的...
如何编写一个before过滤器来检查当前请求是否针对某个子域,如果是,则将其重定向到同一个url但在不同的子域上?
即:blog.myapp.com/posts/1是好的,但blog.myapp.com/products/123重定向到www.myapp.com/products/123
我在想...

class ApplicationController < ActionController::Base
  before_filter :ensure_domain

  protected
  def ensure_domain
    if request.subdomain == 'blog' && controller_name != 'posts'
      redirect_to # the same url but at the 'www' subdomain...
    end
  end
end

你怎么写的重定向?

lokaqttq

lokaqttq1#

ActionController::重定向#redirect_to允许您传递一个绝对URL,因此最简单的方法是传递一个如下的URL:

redirect_to request.url.sub('blog', 'www')
wvt8vs2t

wvt8vs2t2#

从一个子域重定向到另一个子域的简单选择如下

redirect_to subdomain: 'www', :controller => 'www', :action => "index"

这将在域名上调用,例如foo.apple.com将转到www.apple.com

uqcuzwp8

uqcuzwp83#

一个更简单的选项是使用

redirect_to url_for(subdomain: 'www', only_path: false)
4zcjmb1e

4zcjmb1e4#

一个简单的解决方案是

redirect_to dummy_rul(subdomain: 'subdomain')

示例:

redirect_to projects_url(subdomain: 'edv') it will redirect on below url

"http://edv.maindomain.com/projects"

“edv”是我的子域名

相关问题