特定のページにアクセスするときだけ http でアクセスしなおすようにし、それ以外のページにアクセスするときは https でアクセスする、という方法です。
.htaccess ファイルに記述する方法です。よく忘れるのでメモしておきます。。
RewriteEngine on
#HTTPS->HTTP
RewriteCond %{SERVER_PORT} ^443$
RewriteRule ^$|^index\.php$ http://%{HTTP_HOST}/abc/ [L,R]#HTTP->HTTPS
RewriteCond %{SERVER_PORT} !^443$
RewriteRule !^$|^index\.php$ – [C]
RewriteRule ^(.*)?$ https://%{HTTP_HOST}/abc/$1 [L,R]
https://ホスト名/abc/
https://ホスト名/abc/index.php
と、TOPページにアクセスした場合に
http://ホスト名/abc/
http://ホスト名/abc/index.php
にリダイレクトするようになります。
http://ホスト名/abc/page.php
http://ホスト名/abc/def/
など、上記以外へのアクセスであれば
https://ホスト名/abc/page.php
https://ホスト名/abc/def/
にリダイレクトするようになります。
こういう使い方は普通しないですが。。
・「ディレクトリで終わるURL」という表現(正規表現)を mod_rewriteで指定する場合、
・OR条件で指定する場合
・http と https で条件指定する場合
の書き方の参考程度にはなるかと思います。
ちなみに、上の例は、 http と https で同じファイル領域にアクセスしている、という前提で書いています。
http と https でファイルの位置が htdocs 、 htdocs_ssl というように分かれている場合は、それぞれの場所に.htaccessファイルを書かないといけません。念のため。