@Shimpanze

Прошу помощи у опытных разработчиков, как сделать такое условие в .htaccess на Apache 2.0?

Здравствуйте!

У меня хостинг от REG.RU, которые, по неведомой причине, ставят на свои хостинги древнюю версию Apache 2.0, которая не поддерживает условия (<if...). И обновлять не хотят.

Мне необходимо при заходе на сайт сразу сделать редирект на https и поставить пароль на сайт через файл .htaccess.

При этом возникает проблема:
— сначала срабатывает ввод пароля (на http);
— затем происходит редирект на https;
— и, в заключении, ОПЯТЬ вылезает окно для ввода пароля (сайт-то уже на https).

Как я уже сказал, условия не поддерживаются.

Как выйти из положения? Сначала редирект на https, И ТОЛЬКО ПОТОМ ввод пароля.

RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

AuthType Basic
AuthName "Пожалуйста, авторизуйтесь на сайте"
AuthUserFile .../site.ru/.htpasswd
require valid-user


Спасибо! ( готов профинансировать бутылочку :) )
  • Вопрос задан
  • 131 просмотр
Пригласить эксперта
Ответы на вопрос 1
Stalker_RED
@Stalker_RED
SetEnvIf %{SERVER_PORT} ^443$ HTTPS # устанавливаем переменную HTTPS

RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

AuthType Basic
AuthName "Пожалуйста, авторизуйтесь на сайте"
AuthUserFile .../site.ru/.htpasswd
require valid-user 
Allow from env=HTTPS # если не установлена HTTPS - не запрашиваем
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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