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