Вызовите 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
задан 13 April 2017 в 15:14
2 ответа

Здесь может работать директива SSLRequireSSL - http://httpd.apache.org/docs/2.2/mod/mod_ssl.html#sslrequiressl

1
ответ дан 4 December 2019 в 00:14

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 до того, как будет запрошен пароль.

0
ответ дан 4 December 2019 в 00:14

Теги

Похожие вопросы