Apache-2.4
為什麼apache需要使用使用者名和密碼對url進行授權?
我在 apache 中建立了基本授權。在 .Only 中只有一行
/var/www/html/remote.html
。<p>it is a test </p>
現在用 curl 驗證使用者名和密碼。
curl -u xxxx:xxxx -v http://111.111.111.111/remote.html * Trying 111.111.111.111... * TCP_NODELAY set * Connected to 111.111.111.111 (111.111.111.111) port 80 (#0) * Server auth using Basic with user 'xxxx' > GET /remote.html HTTP/1.1 > Host: 111.111.111.111 > Authorization: Basic dGVzdHBhc3M6MTIzNDU2Nzg= > User-Agent: curl/7.52.1 > Accept: */* > < HTTP/1.1 200 OK < Date: Fri, 07 Sep 2018 03:32:42 GMT < Server: Apache/2.4.6 (CentOS) < Access-Control-Allow-Origin: * < Access-Control-Allow-Methods: POST, GET, PUT, DELETE, OPTIONS < Access-Control-Allow-Credentials: true < Access-Control-Allow-Headers: Authorization,DNT,User-Agent,Keep-Alive,Content-Type,accept,origin,X-Requested-With < Last-Modified: Fri, 07 Sep 2018 03:22:41 GMT < ETag: "b2-5753f8537e26c" < Accept-Ranges: bytes < Content-Length: 178 < Content-Type: text/html; charset=UTF-8 < <p>it is a test </p> * Curl_http_done: called premature == 0 * Connection #0 to host 111.111.111.111 left intact
在瀏覽器中輸入
http://111.111.111.111/remote.html?username=xxxx&password=xxxx
,彈出授權視窗。url中包含正確的使用者名和密碼,通過curl驗證,為什麼不能直接顯示remote.html?
為什麼我的 url
http://111.111.111.111/remote.html?username=xxxx&password=xxxx
不能向 apache 伺服器提供授權資訊?
基本認證的 URL 是
http://testpass:12345678@111.111.111.111/remote.html
HTTP 基本身份驗證憑據在特定標頭中從客戶端發送到伺服器 - 它們不會以這種方式附加到 URL。您可以通過注意這一點來驗證這一點
curl http://111.111.111.111/remote.html?username=xxxx&password=xxxx
也不起作用 - 標誌知道以不同的方式發送它,當您將憑據輸入提供的表單時,
-u
您的瀏覽器也會這樣做。