エイリアスwww.mydomain.com
を介して到着した場合でも、ユーザーがmydomain.com
に確実にアクセスできるようにしたいと思います。これは、サブドメインのCookieを制御できるようにするためであり、GoogleがURLの寄せ集めではなく、単一のドメインを認識するようにするためです。
どうすればapacheでこれを行うことができますか?
<VirtualHost ip:80>
ServerName domain.com
RedirectMatch permanent ^(.*)$ http://www.domain.com$1
</VirtualHost>
<VirtualHost ip:80>
ServerName www.domain.com
... usual config
</VirtualHost>
これをhttpd.conf
ファイルに追加します。
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_Host} !^www\.mydomain\.com$ [NC]
RewriteRule ^(.*)$ http://www.mydomain.com/$1 [R=301,L]
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>
本当にGoogleに特定のドメインスタイル(wwwの有無にかかわらず)を使用させたい場合は、無料の Googleウェブマスターツール アカウント、ドメインの所有権を確認し(ファイルをアップロード)、オンラインコントロールパネルを使用して 優先ドメイン を設定します。
そのシンプルさ、そしてサーバーサイドコードを変更する必要はありません。また、wwwの有無にかかわらず、インバウンドリンクは同じように扱われ、ページのPageRankが増加します。
リンクは、URLのwwwバージョンと非wwwバージョンの両方を使用してサイトを指す場合があります(たとえば、 http://www.example.com および http://example.com) )。優先ドメインは、検索結果でサイトに使用するバージョンです。
ご希望のドメイン名をお知らせいただくと、URLを表示する際にご希望のドメイン名が考慮されます。この変更がインデックスに完全に反映されるまで、しばらく時間がかかる場合があります。
優先ドメインを指定しない場合、ドメインのwwwバージョンと非wwwバージョンを別々のページへの別々の参照として扱う場合があります。
私は反対の問題を抱えていました。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 を参照してください。詳細。