.htaccessで特定のディレクトリフォルダのみSSL化する方法

サイト全体の常時SSL化の準備として、まずはHPのページを個別にSSL化していっています。

お問い合わせフォームなどは常時SSL化が必要なので、これを機会に、HTTPでアクセスした訪問者をHTTPSにに転送する設定をしました。

使うのはルートディレクトリに置いた.htaccessファイルです。

ネットで色々と調べましたが、SSL化したいディレクトリに一つ一つhtaccessファイルを置くとか、他のディレクトリにアクセスした場合は、httpに固定するとかそういうのばかりでした。

Googleが推奨するように、将来的に全ページのSSL化を考えていますし、htaccessファイルを一つずつアップは面倒くさい。

簡単に設定する方法を模索していました。最終的にこうなりました

ルートディレクトリに置いた.htaccessで特定のディレクトリフォルダのみSSL化する方法

例えば、
/contact/  と
/pay/
のディレクトリをSSL化したいのであれば、以下の記述をします。


RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} ^/contact/.*$ [or]
RewriteCond %{REQUEST_URI} ^/pay/.*$
RewriteRule /.*$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

これでOKです。

稼働させているのは、「さくらサーバー」なので、他のサーバーだと100%動作保証はしませんが、多分大丈夫かと。

ポイント

このページはそう言えば、コピペができなようにしていました。。。すみません。手打ちor他のサイト+以下の情報を追加すると良いかと。

他のページで書かれていたものをコピペしても作動しなかったのですが、最終的に原因が分かりました。同じところでつまづている人がいるかもしれませんから書いておきます。

コピペをすると最後に空白スペースが出来ていた

他のサイトでコピーできるソースを公開されていますが、注意点として、秀丸などにコピペした際に、最後の改行前に「空白」ができていたりします。
それを消す事で作動しました。30分以上無駄にしました

皆さんもお気を付けください

タイトルとURLをコピーしました