【问题标题】:Rails 3: Redirecting only specific users to new application while others should be able to access old applicationRails 3:仅将特定用户重定向到新应用程序,而其他人应该能够访问旧应用程序
【发布时间】:2018-12-27 07:49:03
【问题描述】:

我的雇主有了新网站,并希望我在客户尝试访问旧网站时将旧网站(在 Rails 3 中)用户重定向到新网站。 棘手的部分是他们希望他们的内部员工继续使用相同的 URL 访问旧网站。但是当外部客户访问旧网站时, 他们想将他/她重定向到新网站。

这可能吗?

我可以想到在 URL 末尾添加“staff”关键字,如果应用程序控制器中的传入 URL 具有“staff”关键字,那么我可以允许内部人员 访问旧网站。如果传入的 URL 在 URL 中没有“员工”关键字,那么我可以重定向到新网站。

这有意义吗?

任何帮助将不胜感激。

【问题讨论】:

  • 或者您可以为您的网站分配一个子域。因此,如果有人访问staff.website.com,他们会继续使用它。任何访问 website.com 的人都会重定向他们。
  • 是的,这可以是一个选项。谢谢

标签: ruby-on-rails ruby-on-rails-3 redirect


【解决方案1】:

示例网址:xyz.com?role=staff

class ApplicationController
  before_action :redirect_if_customer

  protected

  def redirect_if_customer
    if request.host.eql? 'xyz.com' && request.params[:role].eql? 'staff'
      redirect_to "abc.com", status: :moved_permanently
    end
  end
end

【讨论】:

  • 感谢您的回复。但是这种方法的问题是每次内部员工都必须在 URL 末尾附加角色 = 员工。你同意吗?
【解决方案2】:

不确定您的应用程序正在使用哪个 Web 服务器。但是这种场景可以在web server而不是app中实现。

https://www.linode.com/docs/web-servers/apache-tips-and-tricks/redirect-urls-with-the-apache-web-server/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多