url統一を.htaccessで行う
url統一を.htaccessで行うための覚え書きです。SEO対策の基本です。
url統一を.htaccessで行うための覚え書きです。SEO対策の基本です。
https を利用可能にして全アクセス https にしてください。httpアクセスでのウェブ提供は自ら価値を下げています。また、過去よくあったフォームだけhttps,それ以外 http といった分け方も今や無駄な手法です。
RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://example.jp%{REQUEST_URI} [R=301,L]
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]
バーチャルホスト(VirtualHost)指定、又はServerAlias指定で、wwwあり、wwwなしどちらも同一Document Root にアクセスするようにしている場合、こちらもSEO上ページ分散となりマイナス評価となります。ここでは、ホスト名の短くなる www無しにアクセスが寄る方法を提示します。
RewriteEngine On RewriteCond %{HTTP_HOST} ^example\.jp$ RewriteRule ^(.*)$ https://example.jp%{REQUEST_URI} [R=301,L]
ディレクトリインデックス(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/に登録する方法です。セキュリティの事前チェックにもなりますので、ぜひお試しください。
理念
私たちが開発したシステムやサービスを通じ、物心両面から豊かになってもらう。そして人生を楽しんでもらう。そこに私たちが存在する理由があります。
日々新たな製品・サービスを開発・ご提供し、最後まで誠意をもって取り組んで成果を出す。
ご縁を頂いた方やその先の人達に安心と満足をご提供出来る様、誠心誠意取り組んで参ります。