私はインターネット全体を見てきましたが、Heroku.com で次の結果を得るために、DNS などの 100% 適切なセットアップであると期待される最終的な解決策を 1 つ得ることができませんでした。
- mydomain.com を使用して myapp.herokuapp.com のコンテンツを表示する
- http://mydomain.comからhttp://www.mydomain.comへのすべてのトラフィックのリダイレクト(サブフォルダーを含む)
私はどこからでも少し助けを得ることができますが、DNS からラック書き換えまでの問題全体を処理する決定的なものはありません。そのため、ここで質問しています (私のレジストラと Heroku でのサポートは、私に「彼らの役割」を与えることしかできません)。 )。
私が理解している限り、行う必要があるのは次のとおりです。
mydomain.com と www.mydomain.com を Heroku のカスタム ドメインに追加する
レジストラ DNS でCNAME をhttp://myapp.herokuapp.comに変更します。質問: myapp.herokuapp.com への CNAME リダイレクトを使用するのは、「www」と「*」の両方ですか?
ネイキッド ドメイン リクエスト (http://mydomain.com) を処理するために、「@」DNS レコードを追加します。これは CNAME では行われないため、 https://devcenter.heroku.com/articles/custom-domainsの IP 番号を使用していますが、記事によると稼働時間に深刻な問題があります。
-- 1-3 で、 http://myapp.herokuapp.comのコンテンツでhttp://mydomain.comとhttp://www.mydomain.comの両方を提供する Web サイトができました。
c. ここで、すべてをhttp://mydomain.comからhttp://www.mydomain.comにリダイレクトしたいと考えています。Heroku のサポートによると、これはラック書き換え (https://github.com/jtrupiano) で行う必要があります。 /rack-rewrite)。そこにある例を使用すると、コードは次のようになります。
r301 %r{.*}, 'http://mydomain.com$&', :if => Proc.new {|rack_env|
rack_env['SERVER_NAME'] != 'www.mydomain.com'
}
ただし、これは私にとって永遠のループを作成します。
そこで、私の質問は次のとおりです。このセットアップを実現するために、Heroku と DNS 設定の適切なワークフローは何でしょうか?
試行錯誤によってさまざまな DNS 設定を試すのは非常に難しいため、これをトラブルシューティングすることは非常に困難です (それらが成功したかどうかを知ることは困難です)。