なつねこメモ

主にプログラミング関連のメモ帳 ♪(✿╹ヮ╹)ノ 書いてあるコードは自己責任でご自由にどうぞ。記事本文の無断転載は禁止です。

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

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


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

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

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

class UsersController < ApplicationController

  def login
    # ...
    redirect_to users_home_url
  end
end

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

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

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