どのように私はApache2の+ Railsの+のPhusion旅客/ W 'WWW' サブドメインを強制することができますか?
-
19-09-2019 - |
質問
私のクライアントは、自分のサイト上で「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のは、このリダイレクトのために必要とされていません。
所属していません StackOverflow