2009-05-29 14 views
1

私のレールアプリはwww.example.comで答えると壊れているようですが、以前はexample.comだけでうまくいきました...しかし、最近サーバーを移動しましたすべてのwww.example.comリクエストをhttp://example.com/.../レールアプリケーションでドメインを強制する最も良い方法は何ですか?例:www.example.comの代わりにexample.com

に転送するようにリダイレクトする最良の方法を知りたいと考えています。

答えて

1

これはmod_rewriteのは、あなたがそれを聞きたくないかもしれませんが、私は代わりに壊れるものを固定示唆

RewriteEngine on 

    RewriteCond %{HTTP_HOST} ^www.example\.com 
    RewriteRule ^(.*)$ http://example.com$1 [R=301,L] 
0

これはサーバーの設定によって異なりますが、さまざまな方法があります。 1つの方法で、DNSのルートドメインにcname wwwを追加するだけです。 Apacheの背後にあるRailsを実行している場合は、mod_rewriteを使用してApacheで実行できます。たとえば、mongrel(またはwebbrick)を使用してネットワーク要求をRailsに直接取り込む場合、これらのサーバを設定する必要があるか、Railsルートを使用する必要がありますか? Apache's name-based virtual host documentation最初の仮想ホストによると役立ちます

希望、

adricnet

0

は、デフォルトのホストです。余分な信用のために

# Default catch-all 
<VirtualHost *:80> 
    # Note the lack of a ServerName 
    RewriteRule ^(.*)$ http://www.example.com$1 [redirect=permanent] 
</VirtualHost> 

# Site 1 - www.example.com 
<VirtualHost *:80> 
    ServerName www.example.com 

    [ the rest of the site config ] 

</VirtualHost> 

ているので、すべての未定義のホスト(例えばasdfasdfasdfasワイルドカードDNSエントリを設定することができます:私は、最初のエントリにキャッチすべてのことがメインのサイトにすべての「未定義」の要求をリダイレクトを行うためにこれを使用します.example.com)はwww.example.comにリダイレクトされます。

0

を有効にしていると仮定して、トリックを行う必要があります。おそらくあなたのアプリケーションのどこかにあなたのドメインをハードコーディングしました。おそらくあなたのルーティングの中にありますが、エラーの詳細がわからないので、それを削除する必要があります。将来それを再び処理しなければならない。

関連する問題