Ssl
驗證前強制 https - 無法訪問虛擬主機
我是伺服器方面的初學者,我遇到了與此類似的問題。訪問所需網頁時,.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 站點。