我需要啟用密碼保護,除非設定了某個 get 引數。
當前作業代碼(在檔案夾中啟用保護secure):
<If "%{HTTP_HOST} =~ /^(?:. \.)*sub\.domain\.com$/">
SetEnvIfNoCase Request_URI "^/secure/" SECURE
</If>
Require valid-user
Order allow,deny
Allow from all
Deny from env=SECURE
呼叫 eg 時https://sub.domain.com/secure/?access_token=12345,不應啟用密碼保護,如下所示:
<If "%{HTTP_HOST} =~ /^(?:. \.)*sub\.domain\.com$/">
<If "%{QUERY_STRING} != /^access_token$/">
SetEnvIfNoCase Request_URI "^/secure/" SECURE
</If>
</If>
但是"%{QUERY_STRING} != /^access_token$/"給了我一個內部服務器錯誤。
uj5u.com熱心網友回復:
<If "%{QUERY_STRING} != /^access_token$/">
內部服務器錯誤可能是由于使用與字串!=一起使用的(不等于)運算子而不是(不匹配)運算子與正則運算式進行比較而引起的。例如,它應該是:!~
<If "%{QUERY_STRING} !~ /^access_token$/">
雖然這自然是成功的時候QUERY_STRING不完全一樣access_token。訪問令牌值被省略。所以,也許你還需要/^access_token=12345$/.
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/449231.html
