Я новичок, когда дело касается серверов, и у меня проблема, похожая на вот этот. При доступе к желаемой веб-странице .htpasswd предлагает мне пройти аутентификацию, прежде чем я буду перенаправлен на https.
Есть ли обходной путь исключительно путем редактирования файла .htaccess, потому что у меня нет разрешения на изменение файла конфигурации vhost.
Соответствующие строки в моем файле .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. перед запрашивается пароль.