www付きドメインとindex.htmlの指定ありのアドレスを統一する方法

この記事は次のブログに引っ越しました。

さくらインターネットで、アドレスを綺麗に統一させるための .htaccess の工夫です。(lolipopの場合はこちらも参考に) アクセス解析で、index.htmlの「あり・なし」や、www付きのドメインとwwwなしのドメインが別々にカウントされて困る場合などに有効かと思います。 ※SEO対策的にトップページ(ホームページ)のアドレスを統一する最終的な設定例はページ下部をご覧ください。 wwwなしドメインへのアクセスをwww付きに統一する設定 下記が、さくらインターネットで http://hoge.com/ のアクセスを http://www.hoge.com/ に転送(リダイレクト)する.htaccessの設定です。 <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP_HOST} ^(hoge\.com)(:80)? RewriteRule ^(.*) http://www.hoge.com/$1 [R=301,L] </IfModule> ※3行めで「hoge.com」→「hoge\.com」とエスケープしているのに注意。 www付きドメインへのアクセスをwwwなしに統一する設定 下記が、さくらインターネットで http://www.hoge.com/ のアクセスを http://hoge.com/ に転送(リダイレクト)する.htaccessの設定です。 <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP_HOST} ^(www.hoge\.com)(:80)? RewriteRule ^(.*) http://hoge.com/$1 [R=301,L] </IfModule> index.html付きアドレスをindex.htmlなしに統一する設定 下記が、さくらインターネットで http://hoge.com/index.html のアクセスを http://hoge.com/ に転送(リダイレクト)する.htaccessの設定です。 <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.html\ HTTP/ RewriteRule ^index\.html$ http://hoge.org/ [R=301,L] </IfModule> SEO対策としてindex.html指定とサブドメインを統一する方法 さくらインターネットで、下記のようにサブドメインやindex.htmlの指定があった場合にSEO対策として、というより気持ち悪いので、統一する方法です。 http://hoge.com/ http://www.hoge.com/ http://hoge.com/index.html http://www.hoge.com/index.htmlhttp://hoge.com/ ■具体的な.htaccessの設定 <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP_HOST} ^(www.hoge\.com)(:80)? RewriteRule ^(.*) http://hoge.com/$1 [R=301,L] RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.html\ HTTP/ RewriteRule ^index\.html$ http://hoge.com/ [R=301,L] </IfModule> ※ただし、クエリ付きの場合はこの限りではありません。 ■参考URL [cakePHP]さくらインターネットに導入する(cake本体とwebrootを分ける)[サブドメインで運用]: PHPを使ったWebサイト構築 備忘録 www.付きドメインとサブドメインの.htaccessリダイレクト htaccess And mod_rewrite Tutorial