みかづきメモ

学習したことのメモとか、日記とか、備忘録。

変な URL にリダイレクトされるのを治す

Rails にて、 http://123-456-789-123 みたいな、 IP アドレスを - でつなげたような
アドレスにリダイレクトされてつらいことになったので、解決方法をメモしておきます。


発生してた状況は、下のようなもの

  • nginx を SSL アクセラレータとして使用中
  • 上に + で、 Rails の静的コンテンツの配信もしてる

この時、例えばログイン後の処理などで、リダイレクトを行うと、
http://123-456-789-123 のようなアドレスへとリダイレクトされてしまいました。
(https://123-456-789-123 ではありません)
↓のような感じです。

# @ app/controllers/users_controller.rb
class UsersController < ApplicationController
  
  def login
    # ...
    redirect_to users_home_url
  end
end

ということで、次のように変更すると、起こらなくなりました。

  • Rails 側で、 force_ssl = true と設定する
  • nginx からのヘッダーに X-Forwarded-Proto: https を追加

結局あんまり原因はわかってないけど、これで治ったので、とりあえずはよしということで。