Zend Framework

Apache Zend Framework

【ZendFramework】CPIサーバでZendFrameworkを利用したサイトにSSLを使用したい場合の.htaccessの書き方

2011年7月現在、CPIサーバで一般に契約できるプランでは、SSL(セキュア)用のディレクトリは無く、あまり何も考えずにSSLが導入できますが、(少し・かなり?)古いプランで契約している場合にSSL対応ページを作成する場合は、「secure」ディレクトリ内にファイルを設置する必要がある。

CPIの古いサービスにSSLを導入したい

(古いプランでの)簡単すぎるツリーはこんな感じ。
【ROOT】
 ├【HTML】……非セキュア
 ├【secure】……セキュア
(以下略)

シンボリックリンクを利用して運用する

単体のメールフォームなどは「secure」ディレクトリ内に設置すれば良いが、CakePHP や Zend Frameworkなどのフレームワークを利用している場合はそうもいかないので、シンボリックリンクを利用し、仮想的に同一ファイル構造として動作させる必要がある。

あとは、通例通りmod_rewriteを利用してURLを書き換える。
以下の記述は共有SSLでの書き方です。

各行の解説

1. CPIに必要な記述。ディレクトリごとにバージョンの違うPHPを動作させてみてリも出来る(らしい)
2. php.ini を設置しているディレクトリまでのパス。(とりあえず他ディレクトリと同じバージョンとする)
4. php.ini を閲覧されないように処理
8. ファイル一覧が出ないように処理
9. ssiが動くファイル拡張子を設定(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などを指定してあげてください。

-Apache, Zend Framework
-, ,