www ありの URL を www 無しの URL にリダイレクトする

2007-7-26 07:00
このエントリーをはてなブックマークに追加
www

独自ドメインでサイトを運営する際に、http://www.example.com/ のように “www” を頭につけるか、http://example.com/ のように “www” をつけないか、どちらかにしていると思います。しかし、設定によってどらちでもアクセス可能で同じ内容が表示されているという場合も多いです。(www の有無で別内容を表示することもできますが、普通はしませんよね。)

このとき、www の有り無しどちらでアクセスさせるかを統一しておかないと、検索エンジンの結果に二重に表示されたり、ソーシャルブックマークサービスで別々の URL としてカウントされたりしますので、SEO の観点でいうと好ましくありません。

そこで、Apache であれば .htaccess ファイルを使ってリダイレクトさせることができます。

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

これは www 有りから無しへリダイレクトさせる場合です。http://www.example.com/foo/bar にアクセスすると http://example.com/foo/bar に飛びます。うまく行かない場合は、.htaccess の利用が禁止・制限されている、mod_rewrite モジュールが入っていないなどの理由が考えられます。

追記: WordPress での注意点

WordPress では最初から .htacces ファイルが置かれています。このファイル中の # BEGIN WordPress から # END WordPress までは管理画面の「パーマリンク構造を更新」ボタンを押すと上書きされてしまいます。.htaccess ファイルに設定を書く場合は、これらの前後にします。

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

RewriteEngine on
RewriteRule (.*)\.html$ $1 [R=301,L]

# BEGIN WordPress
<IfModule mod_rewrite.c>
この間は上書きされる
</IfModule>
# END WordPress
  • ブックマーク : アクセス: 23,029回
  • カテゴリー : Apache
  • キーワード : ,

コメントはまだありません

No comments yet.

Sorry, the comment form is closed at this time.

32 queries. HTML convert time: 0.087 sec. Powered by WordPress. Valid XHTML
Copyright © 2003-2017 @ futuremix.org ログイン