web-dev-qa-db-ja.com

OPTIONS要求の(Apache)基本認証を無効にする

テストサーバーでApache基本認証を有効にしていて、うまく機能します。

AuthType Basic
AuthName "testing"
AuthUserFile /home/www/.htpasswd
Require user MyUser

deny from all

ただし、OPTIONSメソッドを介して送信されたリクエストの認証も試みます。これは問題です。CORS仕様ではExclude user credentials - https://www.w3.org/TR/cors/#cross-Origin-request-with-preflight-

OPTIONSメソッドで受信したリクエストの認証を無効にするにはどうすればよいですか?

(Tomcatの場合と同様: TomcatでOPTIONS要求の認証を無効にする

2
GIS-Jonathan

おそらく、Apache式(Apache 2.4+)を使用して、要求メソッドがnot "OPTIONS"の場合にのみHTTP基本認証ディレクティブを適用できます。

例えば:

<If "%{REQUEST_METHOD} != 'OPTIONS'">
# Authentication directives...
</If>

参照:

https://httpd.Apache.org/docs/2.4/expr.html

deny from all

この(Apache 2.2)ディレクティブをBasic Authディレクティブで使用する必要はありません。

1
MrWhite