Ssl

驗證前強制 https - 無法訪問虛擬主機

  • February 10, 2015

我是伺服器方面的初學者,我遇到了與此類似的問題。訪問所需網頁時,.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

這裡有一個 SSLRequireSSL 指令可能對您有用 - http://httpd.apache.org/docs/2.2/mod/mod_ssl.html#sslrequiressl

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 站點。

引用自:https://serverfault.com/questions/658412