url統一を.htaccessで行うための覚え書きです。
SEO対策の基本として、ウェブ制作会社さんも、独力で作られた方も、みなさんぜひ覚えておきましょう。
httpアクセスを httpsアクセスに統一
https を利用可能にして全アクセス https にしてください。
httpアクセスでのウェブ提供は自ら価値を下げています。
また、過去よくあったフォームだけhttps,それ以外 http といった分け方も今や無駄な手法です。
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://example.jp%{REQUEST_URI} [R=301,L]
SSL/TLSアクセラセーターを使っている場合の httpsアクセス統一
AWS(Amazon Web Services)のELB(Elastic Load Balancing)など、SSL/TLSアクセラレーターを使っている場合は、上で示した方法ではリダイレクトループを引き起こします。
この場合は以下の指定が良いでしょう。
RewriteEngine On
RewriteCond %{HTTPS:X-Forwarded-Proto} !https [NC]
RewriteRule ^(.*)$ https://example.jp%{REQUEST_URI} [R=301,L]
wwwあり無しを www無しに統一
バーチャルホスト(VirtualHost)指定、又はServerAlias指定で、wwwあり、wwwなしどちらも同一Document Root にアクセスするようにしている場合、こちらもSEO上ページ分散となりマイナス評価となります。
ここでは、ホスト名の短くなる www無しにアクセスが寄る方法を提示します。
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.jp$
RewriteRule ^(.*)$ https://example.jp%{REQUEST_URI} [R=301,L]
/index.php , /index.html を /に統一
ディレクトリインデックス(DirectoryIndex)オプションで、 index.html , index.php など設定している場合、ディレクトリ指定でアクセスした場合と、インデックスファイルでアクセスした場合は同じ結果(出力)となりますが、SEO上はページ分散となりマイナス評価となりますので、どちらか(インデックスファイルかディレクトリ)にアクセスを寄らせる必要があります。
ここでは、URLが短くなりユーザーフレンドリーなディレクトリに寄らせる方法を提示します。
RewriteEngine On
RewriteCond %{THE_REQUEST} ^.*/index\.(htm|html|php)
RewriteRule ^(.*)index\.(htm|html|php)$ https://example\.jp/$1 [R=301,L]
統一する順番に注意
上から順に行ってください。
最初にhttpsへのリダイレクト。
http アクセスを許可している間、セキュリティリスクをを利用者に強いるかたちになりますから、何はともあれhttps にする。
次にホスト名の変更。
注意点は https リダイレクトとホスト名の変更を同時に行わない事。
HSTS(HTTP Strict Transport Security)においてブラウザーがサブドメイン含めたリダイレクト前後ドメインのHSTSエントリーを確実に記録するためには、エントリーさせるドメイン分だけリダイレクトさせる必要があります。
最後にindex.html 等パスの統一。
(参考)HSTS(HTTP Strict Transport Security)について
HSTS(HTTP Strict Transport Security)とは、httpsアクセスが可能なドメインをブラウザーに記憶(エントリー)させることで、http アクセスをリクエストされてもブラウザー側で最初から https アクセスさせてしまう機構の事です。
これによりリダイレクトに必要な余計な通信を減らすことができるのと、httpアクセスをそもそもさせない事でセキュリティリスクを減らす事が出来るようになります。
もう1段回進めて、事前に登録しておくという方法もあります。
https://hstspreload.org/に登録する方法です。セキュリティの事前チェックにもなりますので、ぜひお試しください。
関連リンク
株式会社エン・PCサービスで開発したツール類や技術情報のご紹介。ウェブ開発を行う中で頻繁に使うものをツール化し、情報整理したものをまとめました。開発事業者様の補助ツールとしてご利用下さい。
ITについてなんでも相談に乗ってしまおう、というサービスを始めました。社内エンジニアの育成や情報システムの適切な管理の仕方、など。なんでもご相談ください。
Reverse-ProxyとWordPressでオウンドンメディアだけ別サーバーで動かす、という話です。実際に構築してハマった事とその解決方法をご紹介しています。
スクラッチ開発で、発注者と業者、それぞれが気を付けなければいけない事をお伝えしていき、いかにして開発を成功させるかを開発プロセスという観点からご紹介しています。