URLが常にwwwで始まるように強制するにはどうすればよいですか?


17

www.mydomain.comエイリアスを介してユーザーが到着しても、ユーザーが確実にアクセスできるようにしたいと考えていますmydomain.com。これにより、サブドメインのCookieを制御できるようになり、GoogleがURLの寄せ集めではなく、1つの単一のドメインを認識できるようになりました。

どのようにApacheでこれを行うことができますか?


5
代わりにこれを逆にして、代わりにmydomain.comを適用することをお勧めしますか?「www」プレフィックスは冗長であり、完全に不要です。
イーブイ

cookieはmydomain.comのすべてのサブドメインに送信されますが、www.mydomain.comを使用して、どこからどのCookieを読み込むかを自分で決定できます。たとえば、cookieがstatic.mydomain.comに追加されないようにできます。ロードされるすべての画像に対して送信されません。それは間違いなく不要ではありません。
マグナー

特に、単一のリンクスタイルを使用するようにGoogleに指示できます。以下の私の答えをご覧ください。
ロビーニクス2009年

私が担当者を持っていないが、これらのタグを追加することは参考になる:リダイレクトに、RedirectMatchのmod_alias
トム・

1
これはずっと後のことですが、それでも関連性があります。サブドメインのないドメインにはいくつかの欠点があるため、wwwは非推奨ではありません。wwwを使用するいくつかの理由については、yes-www.org / why- use-wwwを参照してください。
user50849 14年

回答:


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

<VirtualHost ip:80>
   ServerName www.domain.com

   ... usual config
</VirtualHost>

7
少し簡単な解決策として、「パーマネントをリダイレクト/ ptth://www.domain.com/」とすると、Apacheは自動的にサフィックスを保持します。(自動リンクを無効にするためにhttpを反転しました。)
グレッグヒューギル

1
本当に ?甘い、私はそれを知らなかった。私はいつもあなたがURIの末尾の部分を維持するために、RedirectMatchを使用していたと思った
デイブチェイニー

4

これをhttpd.confファイルに追加します。

Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www\.mydomain\.com$ [NC]
RewriteRule ^(.*)$ http://www.mydomain.com/$1 [R=301,L]

4

mod_rewriteサポートを有効にしてから、ドメインのルートフォルダーに次の内容の.htaccessファイルを作成します。

<IfModule mod_rewrite.c>
   Options +FollowSymLinks
   Options +Indexes
   RewriteEngine On
   RewriteBase /
   RewriteCond %{HTTP_HOST} ^domain\.com$
   RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]
</IfModule>

RewriteCondテストの大文字と小文字を区別しないことを忘れないでください...-
Alnitak

これは、何らかの理由でApacheの設定ファイルを変更するアクセス権がない場合にのみ行ってください。 .htaccessファイルには多くのオーバーヘッドがあり、ファイル内の書き換えによりさらに悪化します。
ジョンダルトン

このタスクでmod_rewriteを使用するよりも、リダイレクトを使用する方が常に望ましいです。
デビッドパシュリー

3

Googleに(wwwの有無にかかわらず)特定のドメインスタイルを本当に使用する場合は、無料のGoogleウェブマスターツールアカウントを作成し、ドメインの所有権を確認(ファイルをアップロード)し、オンラインコントロールパネルを使用して優先ドメインを設定します。

そのシンプルで、サーバー側のコードを変更する必要はありません。また、wwwの有無にかかわらずインバウンドリンクは同じように扱われ、ページのPageRankが増加します。

リンクは、URLのwwwバージョンとwww以外のバージョン(たとえば、http://www.example.comおよび http://example.com)の両方を使用してサイトを指す場合があります 。優先ドメインは、検索結果でサイトに使用するバージョンです 。

ご希望のドメイン名をお知らせいただくと、URLを表示する際にお客様の設定が考慮されます。この変更がインデックスに完全に反映されるまでには時間がかかる場合があります。

優先ドメインを指定しない場合、ドメインのwwwバージョンとwww以外のバージョンを、個別のページへの個別の参照として扱う場合があります。


1

domain.comから直接サービスを提供したいときに、www.domain.comにアクセスするという逆の問題がありました。

<VirtualHost *:80>
   ServerName domain.com

   ... usual config
</VirtualHost>

<VirtualHost *:80>
   ServerName www.domain.com
   ServerAlias sub.domain.com # can also catch some other subdomains
   ServerAlias *.domain.com # or all previously unmatched domains

   Redirect permanent / http://domain.com/
</VirtualHost>

Greg Hewgillが述べたように、Redirectの使用はRedirectMatchよりも少し簡単で、同じ仕事をします。詳細については、http://httpd.apache.org/docs/2.0/mod/mod_alias.html#redirectを参照してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.