どのように私はApache2の+ Railsの+のPhusion旅客/ W 'WWW' サブドメインを強制することができますか?

StackOverflow https://stackoverflow.com/questions/1896321

質問

私のクライアントは、自分のサイト上で「WWW」サブドメインを強制的に301のリダイレクトを使用します。だから、「example.com/something」など「www.example.com/somthing」に解決ます。

私は何をしようとしていることは、単に私のバーチャルホストファイルに以下を追加されます:

<VirtualHost *:80>
  ServerAdmin webmaster@localhost     
  ServerName  example.com
  ServerAlias www.*
  DocumentRoot /data/apps/example.com/current/public
  RailsBaseURI / 

  RewriteEngine On
  RewriteCond %{HTTP_HOST} ^example\.com
  RewriteRule ^ http://www.example.com%{REQUEST_URI} [L,R=301]
</VirtualHost>

私はモッズ書き換えを経由して有効になっていることも確保しました

sudo a2enmod rewrite
sudo /etc/init.d/apache2 force-reload

私の現在の努力の成果は、基本的には成功したように見えます。 Apacheは再起動し、すべてがリライトが起きていないことを除いて期待通りに動作します。だから、両方の「www.example.com」と「example.com」決意。ときそれが必要ブラウザは「www.example.com」にリダイレクトされません。何か案は?私は、コンフィギュレーションをリロードし、apacheの数回の再起動を試みたが、私は働いて書き換えルールを取得するように見えることはできません。私の代わりに.htaccessファイルのバーチャルホストにここでそれらを配置することによって、間違った場所でそれらを設定するのですか?

ここに何かアドバイスは有用であろう。私は完全にバッフル付きです。

役に立ちましたか?

解決

あなたのメインのVirtualHostエントリの下にこれを置きます:

<VirtualHost *:80>
    ServerName example.com
    RedirectMatch permanent ^/(.*) http://www.example.com/$1
</VirtualHost>

あなたは、メインのVirtualHostは、サーバー名www.example.comエントリなしエイリアスまたはリダイレクトを持っている必要があります。また、mod_rewriteのは、このリダイレクトのために必要とされていません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top