Redirect 由于symlink,使用HTTPS的Rails重定向问题

Redirect 由于symlink,使用HTTPS的Rails重定向问题,redirect,ruby-on-rails-3.1,https,Redirect,Ruby On Rails 3.1,Https,这与其他Rails 3重定向https问题略有不同。让我解释一下 为了使用Phusion Passenger发布我们的网站,我们必须创建一个子域,并使用www/rails文件夹到/home/user/app/railsapp的符号链接或软链接或别名 由于各种域问题,为了使HTTPS正常工作,我们需要一个重写模块来实际创建此路由: https://my.site.com/rails 请注意尾部/轨道路线 我们的应用程序上不存在此路由。因此,我需要的是一种方法,将该路径中的任何内容重定向到: ht

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

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

由于各种域问题,为了使HTTPS正常工作,我们需要一个重写模块来实际创建此路由:

https://my.site.com/rails
请注意尾部/轨道路线

我们的应用程序上不存在此路由。因此,我需要的是一种方法,将该路径中的任何内容重定向到:

https://my.site.com/login
所以我想我应该这样做,在routes.rb文件中有:

match '/rails' => 'sessions#redirect_to_login'
在会话_controllers.rb中:

  def redirect_to_login
    redirect_to login_path, :status => :moved_permanently
  end
这导致应用程序抱怨它找不到/rais/login/所以它仍然在寻找/rails位

如果我添加诸如redirect_to/之类的内容,当您未登录时,它会将您发送到my.site.com/login并进行重定向,我将在浏览器中收到一个重定向过多的错误

重定向\u到登录\u url也没有做到这一点

它变得有点复杂,因为每当我为该站点使用https协议时,它都会附加/rails路由,所以我需要一种方法将其从所有链接中删除。例如https://my.site.com/movies 将被翻译为https://my.site.com/rails/movies.

删除/rails或将所有https通信重定向到http(登录页面除外)

我相信有一个相对容易的解决办法,但我想不出来

谢谢你的帮助