Apache-2.4

為 OPTIONS 請求禁用 (Apache) 基本身份驗證

  • June 6, 2019

我在測試伺服器上啟用了 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-0

如何禁用使用 OPTIONS 方法傳入的請求的身份驗證?

(與 Tomcat 類似:Disable authentication for OPTIONS requests in Tomcat

當請求方法不是“OPTIONS”時,您也許可以使用 Apache 表達式(Apache 2.4+)僅應用 HTTP Basic Auth 指令。

例如:

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

參考:

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

deny from all

您不需要將此(Apache 2.2)指令與您的基本身份驗證指令一起使用。

引用自:https://serverfault.com/questions/970420