ウェブサイトの URL と API の URL で構成される cakephp プロジェクトがあります。
- http://myproject.com/controller1/someaction
- http://myproject.com/controller2/someotheraction
- http://myproject.com/api/controller1/someapiaction
実稼働環境では、Web サイトと API の両方が、cakephp のメソッドを使用して認証と承認を処理します。
プロジェクト全体をステージング サーバーにデプロイしたいと考えています。そこでは、Web サイトは HTTP 認証で保護されている必要がありますが、API は保護されていない必要があります (API コンシューマーに認証を追加したくないため)。プロジェクトのソースや構成を変更したくないので、代わりに Apache 構成で解決します。
基本的に次のスキームに従って、いくつかの仮想ホスト構成を試しました。
<LocationMatch "/api/.*">
Order allow,deny
Allow from all
Satisfy any
</LocationMatch>
<Location />
Order allow,deny
Allow from all
AllowOverride all
AuthType Basic
AuthName "myproject"
AuthUserFile /path/to/.htpasswd
AuthGroupFile /path/to/.htgroup
Require group mytesters
</Location>
また、両方のセクションに Location または LocationMatch を使用し、LocationMatch の正規表現を無効にし、両方のセクションに個別の仮想ホストを使用して、Location と Directory のディレクティブを混在させてみました。
私は何か本当に間違っているのでしょうか、それとも不可能なのでしょうか (Apache または cakephp が書き換えを処理する方法が原因で) ?