Назад | Перейти на главную страницу

Принудительно использовать https перед аутентификацией - нет доступа к vhost

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