这与所有其他 Rails 3 重定向 https 问题略有不同。让我解释。
为了使用 Phusion Passenger 发布我们的网站,我们必须创建一个子域并使用www/rails
文件夹中的符号链接(或软链接或别名)到/home/user/app/railsapp
.
为了使 HTTPS 正常工作(由于各种域问题),我们需要一个重写模块来实际创建此路由:
https://my.site.com/rails
注意尾随的/rails路线。
我们的应用程序上不存在这条路线。所以我需要一种方法来重定向该路由中的任何内容:
https://my.site.com/login
所以我想我会这样做,在routes.rb
文件中有这个:
match '/rails' => 'sessions#redirect_to_login'
在 session_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。
我确信有一个相对简单的解决方法,但我无法弄清楚。
帮助表示赞赏。