この記事では、ユーザービリティやSEOの観点から、ドキュメントルートの「.htaccess」に記述すべき3点を取り上げて解説します。
ドキュメントルートの「.htaccess」に記述すべき内容3選
ドキュメントルートの「.htaccess」に記述した方が良い内容は、次の3つです。
- 「www」あり・なしの統一
- 「index.html」「index.php」を「/」に統一
- 「https」アクセスに統一
①「www」あり・なしの統一
ウェブサイトのURLの頭に、「www」を付けるのを標準とするか、付けないのを標準とするか、を統一します。
例えば「wwwあり」で統一することとした場合、「https://●●●.com」でアクセスがあったら、「https://www.●●●.com」にリダイレクト(URLリライト)して、サイトを表示するようにします。
逆に「wwwなし」で統一することとした場合、「https://www.●●●.com」でアクセスがあったら、「https://●●●.com」にリダイレクト(URLリライト)して、サイトを表示するようにします。
「www」あり・なしを統一するための「.htaccess」の書き方は、以下の記事を参考にしてください。また、このページの最後にも、「.htaccess」のサンプルを記載しています。
「www」あり・なしを統一する目的・効果
「www」あり・なしを統一する目的の第一として、「ブランドイメージの統一」があります。特にカンパニー・サイトの場合は、絶対に統一するべきです。例えば、名刺、会社のパンフレット、会社案内などに記載するURLが「wwwあり」なら、そちらに統一するようにします。
目的の第二は「SEO対策」です。同じページに「wwwあり」と「wwwなし」の両方でアクセスが可能だと、検索エンジンから「重複ページ」と認識される可能性があります。
「www」は付けた方が良い?付けない方が良い?
かなり昔は「wwwは付けた方が良い」と言われていた時代があったのですが、現在は「どちらでも良い」で、コンセンサスが取れていると思います。
ブラウザ「Google Chrome」は、「wwwあり」で統一されているサイトであっても、ブラウザのアドレス欄は「wwwなし」で表示されます(内部的には「wwwあり」でアクセスしている)。これは、Googleが「URL表示は、なるべくシンプルな方が良い」と考えているからです。
(参考)Google公式 … Google における URL 構造のベスト プラクティス
ちなみに、当サイトは「wwwなし」で統一しています。
②「index.html」「index.php」を「/」に統一
「index.html」「index.php」を「/」に統一しておくと、そのどちらでアクセスがあっても、ページの表示がされます。
例えば、トップページが「index.php」で作られている場合で、「/」に統一がされていないと、「https://●●●.com/index.html」でアクセスがあったら「404エラー」になってしまいます。「/」に統一しておけば、「https://●●●.com/index.html」でアクセスがあっても、「index.php」が表示されるので、「404エラー」にはなりません。
「index.html」「index.php」を「/」に統一するための「.htaccess」の書き方は、以下の記事を参考にしてください。また、このページの最後にも、「.htaccess」のサンプルを記載しています。
③「https」アクセスに統一
現在は、暗号化されて通信される「https」でのアクセスが基本です。「https」でのアクセスが可能なら、「http」でのアクセスは「https」にURLリライトしてアクセスするように、「.htaccess」に記述するべきです。
「https」アクセスに統一するための「.htaccess」の書き方は、以下の記事を参考にしてください。また、このページの最後にも、「.htaccess」のサンプルを記載しています。
「.htaccess」のサンプル
以下の2パターンの「.htaccess」のサンプルを記載します。なお、このサンプルは「ドキュメントルートの”.htaccess”に記載する」ことを前提に記載しています。
- 「www」あり、に統一
- 「index.html」「index.php」を「/」に統一
- 「https」アクセスに統一
- 「www」なし、に統一
- 「index.html」「index.php」を「/」に統一
- 「https」アクセスに統一
パターン①と②の違いは「www」の有無だけです。
パターン①
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.●●●.com
RewriteRule ^(.*)$ https://●●●.com/$1 [R=301,L]
RewriteCond %{THE_REQUEST} ^.*/index.(html|php)
RewriteRule ^(.*)index.(html|php)$ https://%{HTTP_HOST}/$1 [R=301,L]
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://●●●.com/$1 [R=301,L]
パターン②
RewriteEngine on
RewriteCond %{HTTP_HOST} ^●●●.com
RewriteRule ^(.*)$ https://www.●●●.com/$1 [R=301,L]
RewriteCond %{THE_REQUEST} ^.*/index.(html|php)
RewriteRule ^(.*)index.(html|php)$ https://%{HTTP_HOST}/$1 [R=301,L]
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://●●●.com/$1 [R=301,L]
ドキュメントルートの「.htaccess」に記述すべき3点の解説は以上です。「.htaccess」は、書き方をちょっと間違えるとサイトが表示されなくなったりするので、既存の記述を壊さないようにしながら、注意して編集するようにしてください。
※この記事の内容は、エックスサーバーで動作を確認しました。