htaccessに記入したリダイレクトが、シンボリックリンクにしているフォルダに効かない時

投稿者: | 2017年10月20日

常時SSLへ

ブラウザシェアで60%程度のシェアを持つGoogle Chromeが、Chrome(バージョン 62)において、https化してないホームページのフォーム入力時に「保護されていません」という警告が表示されるようになり、既にSSL化は必須と言える状況になっている。
そんな中、サイトのSSL化に移行する際に、いままで非SSL(http://〜)でアクセスしていたページをSSL(https://〜)に変更しても、過去のリンクやブックマークからのアクセスにより、非SSLにアクセスされてしまうことが考えられる。

対策として最も簡単なのはトップ階層に置いた.htaccessにhttps://〜にリダイレクトさせる指示を書き、強制的にSSLに飛ばしてしまう方法。
階層化のフォルダにhttp://〜でアクセスされた場合も、すべてhttps://〜にリダイレクトされる。

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]

ただし、例外として実在しないフォルダには効かないため、シンボリックリンクにしているフォルダへアクセスされるとリダイレクトされない。

解決方法

アクセスの流れを考えれば簡単なこと。
リンクの元のフォルダにhtaccessを置き、同様の指示を書けばいい。