タイトルが長いな…。
それはさておき、2011年7月現在、一般に契約できるプランでは、SSL(セキュア)用のディレクトリは無く、あまり何も考えずにSSLが導入できるが、少し古いプランで契約している場合にSSL対応ページを作成する場合は、secureディレクトリ内にファイルを設置する必要がある。
簡単すぎるツリーはこんな感じ。
【ROOT】
├【HTML】……非セキュア
├【secure】……セキュア
(以下略)
単体のメールフォームなどは件のsecureディレクトリ内に設置すれば良いが、CakePHPやZendFrameworkなど、フレームワークを利用している場合はそうもいかないので、シンボリックリンクを利用し、仮想的に同一ファイル構造として動作させる必要がある。
あとは、通例通りmod_rewriteを利用してURLを書き換える。
なお、以下の記述は共有SSLでの書き方です。
AddHandler x-httpd-phpXXX .php
suPHP_ConfigPath /usr/home/ユーザID/html/
<Files ~ "\.ini">
deny from all
</Files>
Options +Includes
AddHandler server-parsed .shtml .html .htm
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
## SSL
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{HTTP_HOST} ^mtXXXX.secure.jp$
RewriteRule !\.(js|ico|gif|jpg|jpeg|png|css|zip|pdf|swf)$ /~ユーザID/index.php
</IfModule>
各行の解説(間違ってたらスミマセン)
1. CPIに必要な記述。ディレクトリごとにバージョンの違うPHPを動作させてみてリも出来る(らしい)。
2. php.iniを設置しているディレクトリまでのpath。(とりあえず他ディレクトリと同じバージョンとする)
4. php.iniを閲覧されないように処理。
8. ファイル一覧が出ないように処理。
9. sslが動くファイル拡張子を設定(shtml,html,htmで動くよう設定)
11. ここからmod_rewrite開始。
12. シンボリックリンクを有効にする。(CPIサーバーでmod_rewriteを有効にするにはこの記述が必要)
13. 書き換えの可否を設定(デフォルトがOFFなので、ONにする)
16. !-d は存在するディレクトリ名にはルールを適用しない、の意味。
17. !-f は存在するファイル名にはルールを適用しない、の意味。
18. https接続用のURL。「$」は正規表現で行末の意味。
19. 前半内容でアクセスの場合、後半部に書き換えるという意味。
上記.htaccessを作成し、secureディレクトリに設置。
次にドキュメントルートにある(であろう)index.phpをsecureディレクトリにもコピーし、BASE_DIRなどを指定してあげてください。