助けてくれてありがとう。Web アプリ用に Zend Framework をセットアップしましたが、これまで基本的な SSL リダイレクトを使用して正常に動作していました。いくつかのパスを除いて、すべての URL を SSL にリダイレクトしたいと考えています。1 つのパスは正常に機能し、画像ファイルをロードしているだけです。しかし、もう一方のパスはそうではなく、リクエスト引数を必要とする Action を持つ Zend Framework Controller です。
これが現在の作業構成です。
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteCond %{REQUEST_URI} !(/images)
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
上記は、画像を除外して ZF を機能させるために機能しますが、URI パス /wsrv/itemdata 内のものもすべて除外したいので、次の条件を使用してみました。
RewriteCond %{REQUEST_URI} !(/wsrv/itemdata)
/wsrv/itemdata には、次の形式でいくつかのパラメーターが含まれる場合があります。
/wsrv/itemdata/item_nbr/111111/some_other_arg/a-value
私たちの問題は、SSL に向けられた /index.php に常にリダイレクトされることです。フレームワークが機能するには index.php へのリダイレクトが必要ですが、単一のコントローラーとアクション /wsrv/itemdata のみに ssl を使用する必要はありません。
助けていただければ幸いです。ありがとう!
編集 6-4-12: (解決済み! ほとんど) URL の書き換えではなく、Zend Framework のローダーにあるものです。以下のルールを追加し、いくつかのテスト ファイルを使用しました。ルールは機能します。しかし、私のフレームワーク設定の何かがそれをリダイレクトしています。
RewriteCond %{HTTPS} !=on
RewriteCond %{REQUEST_URI} !(/images/)
RewriteCond %{REQUEST_URI} !(/wsrv/itemdata/)
RewriteCond %{REQUEST_URI} !(/test/make/)
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
フレームワークを通過する /wsrv/itemdata 行を除いて、上記は機能します。