2008年7月1日火曜日

Apacheで特定の URLのみ認証をかけない方法

Apacheでサイト全体(または該当ディレクトリ)に認証をかけていて、ファイルのアップロードにFlashのFileReferenceを使い、かつクライアントがFirefoxだとアップロード時に認証ダイアログが再び出てくる問題がある。
原因は、Firefox上のFlash PlayerがIEのCOOKIEを使うためらしい。(参考:くじらはんどぶろぐ : Flashのファイルアップロードで Cookie が引き継がれない問題


そこで、サイト全体に認証をかけたまま、特定のURLのみ認証無しになるように設定する。
Satisfyをanyにすると、ユーザー認証かホストレベルのアクセス制限のどちらかがOKならアクセスできるようになる。(参考:core - Apache HTTP サーバ
#サイト全体には普通に認証をかける
<Location />
AuthType Digest
AuthName "realm"
AuthUserFile conf/digest/example.digest
Require valid-user
</Location>

#アップロードのURLのみ、ホストレベルのアクセス制限さえクリアすればアクセス可能にする
<Location /upload.php>
Satisfy any
</Location>


参考:
 memo.xight.org - Basic 認証をかけるが,特定のホストは認証なしで通過させる方法


0 件のコメント:

コメントを投稿