1

这与所有其他 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。

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

帮助表示赞赏。

4

0 回答 0