这与其他所有其他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。
我确信有一个相对简单的解决办法,但我无法弄清楚。
帮助表示赞赏。