身份验证前强制使用 https - 无法访问 vhost

身份验证前强制使用 https - 无法访问 vhost

我是服务器方面的新手,我遇到了类似的问题这个。当访问所需的网页时,.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 网站提示输入密码。

相关内容