由于符号链接,导致使用HTTPS重定向问题

时间:2012-05-16 09:15:30

标签: redirect ruby-on-rails-3.1 https

这与其他所有其他Rails 3重定向https问题略有不同。让我解释。

为了使用Phusion Passenger发布我们的网站,我们必须创建一个子域,并使用www/rails文件夹中的符号链接(或软链接或别名)到/home/user/app/railsapp

为了使HTTPS工作(由于各种域问题),我们需要一个实际创建此路由的重写mod:

https://my.site.com/rails

请注意尾随的 / rails 路由。

我们的应用程序中不存在此路线。所以我需要的是一种方法来将该路线的任何内容重定向到:

https://my.site.com/login

所以我想我会这样做,在routes.rb文件中有这个:

match '/rails' => 'sessions#redirect_to_login'

在sessions_controllers.rb中:

  def redirect_to_login
    redirect_to login_path, :status => :moved_permanently
  end

这导致应用抱怨它无法找到/rais/login/所以它仍在寻找/rails位。

如果我添加了redirect_to "/"这样的内容,而当您未登录时,它会将您发送到my.site.com/login并重定向,我会在浏览器中收到过多重定向错误。

redirect_to login_url也没有做到这一点。

从某种意义上讲,它变得有点复杂,每当我使用该网站的https协议时,它都会附加/rails路由,因此我需要一种方法将其从所有链接中删除。例如,https://my.site.com/movies将转换为https://my.site.com/rails/movies

删除/rails或将所有https流量重定向到除登录页面之外的http。

我确信有一个相对简单的解决办法,但我无法弄清楚。

帮助表示赞赏。

0 个答案:

没有答案