我是服务器方面的新手,我遇到了类似的问题这个。当访问所需的网页时,.htpasswd 会提示我进行身份验证,然后才会重定向到 https。
是否有任何解决方法,仅通过编辑 .htaccess 文件即可,因为我没有权限更改 vhost conf 文件。
到目前为止,我的 .htaccess 文件中的相关行如下所示:
BlockquotRewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteCond %{ENV:HTTPS} !=on
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
AuthType Basic
AuthName "members only"
AuthUserFile /var/www/myweb/.htpasswd
Require valid-user
答案1
这里有一个 SSLRequireSSL 指令可能对你有用 -http://httpd.apache.org/docs/2.2/mod/mod_ssl.html#sslrequiressl
答案2
RequireSSL 的缺点是,如果有人仅连接到“http://”,他们的访问就会被拒绝。
一个更方便用户使用的解决方案是有两个 VirtualHost 条目(一个用于 HTTP,一个用于 HTTPS),并让第一个条目进行重定向。例如
<VirtualHost *:80>
ServerName www.yoursite.com
ServerAlias yoursite.com
Redirect permanent / https://www.yoursite.com/
</VirtualHost>
<VirtualHost *:443>
SSLEngine on
AuthType Basic
AuthName "members only"
AuthUserFile /var/www/myweb/.htpasswd
Require valid-user
....
</VirtualHost>
就你的情况而言,这也意味着他们将被重定向到 SSL 网站前提示输入密码。