我想仅在使用 HTTPS 时使用基本身份验证。如果使用这样的 .htaccess,用户必须输入两次密码
RewriteEngine On
RewriteOptions Inherit
# Rewrite to HTTPS (except for let's encrypt)
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/.*$
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
<RequireAny>
AuthType Basic
AuthName "Top Secret"
AuthUserFile /is/htdocs/***/.htpasswd
Require valid-user
</RequireAny>
使用这个文件:
- http://我的网站.域名叫做
- 请求对“http://mysite.domain”进行身份验证(NoSSL)
- 重定向至https://我的网站.域名已经完成了
- 请求对 'https://mysite.domain' 进行身份验证 (SSL)
我如何才能避免此处对“http://mysite.domain”进行身份验证?
答案1
找到了,使用 REQUEST_SCHEME。
<If "%{REQUEST_SCHEME} == 'https'">
<RequireAny>
AuthType Basic
AuthName "Top Secret"
AuthUserFile /is/htdocs/***/.htpasswd
Require valid-user
</RequireAny>
</If>