代码之家  ›  专栏  ›  技术社区  ›  rmontgomery429

Rails3中有没有一种方法可以将Internet Explorer用户重定向到特定的页面?

  •  2
  • rmontgomery429  · 技术社区  · 15 年前

    我想把所有IE用户重定向到一个特定的页面,告诉他们我们不支持IE,他们应该尝试其他浏览器。如何使用rails3路由实现这一点,同时允许公共用户查看站点的公共区域?

    MyApp::Application.routes.draw do
      constraints(NoSubdomain) do
        root :to => 'public#index'
      end
    
      constraints(Subdomain) do
        root :to => 'internal#index'
      end
    end
    

    我知道有能力匹配 user_agent 但是我不能让它重新引导所有ie用户访问网站的内部(账号:myapp.com)到 '/ie'

    MyApp::Application.routes.draw do
      constraints(NoSubdomain) do
        root :to => 'public#index'
      end
    
      constraints :user_agent => /MSIE/ do
        match "*" => redirect('/ie')
      end
    
      constraints(Subdomain) do
        root :to => 'internal#index'
      end
    end
    
    1 回复  |  直到 15 年前
        1
  •  0
  •   sph    15 年前

    首先,在匹配所有内容时调用redirect。所以,用户请求账号:myapp.com/这和任何东西都匹配,所以它们被重定向到account.myapp.com/ie,但这也匹配任何内容,因此它们被重定向到account.myapp.com/ie他们又被重新定向了。它变成了一个无限循环,但您可能看不到这一点,因为第二件事Rails甚至无法与之匹配。

    其次,Rails要求您在其中输入一个名称。你可以用“ “,但事实并非如此。

    constraints :user_agent => /Firefox/ do
      match "*url", :to => "ie#index"
    end
    

    我不能和你一起去测试。