странная ошибка 401 появляется для некоторых URL при использовании .htaccess для перенаправления http на https
Хорошо, вот 7-й день неудачной попытки найти ответ, почему появляется ошибка 401 ...
Теперь .htaccess в корневой папке содержит только 3 строки (было упрощено), и в проекте больше нет файлов .htaccess:
RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
Таким образом, он перенаправляет все запросы на https. Он отлично работает для любых URL, даже для каталога / Administration.
Так,
http://mydomain.com
становится
https://mydomain.com
Еслиhttps://mydomain.com
был введен, перенаправлений нет.
http://mydomain.com/administration/index.php
становится
https://mydomain.com/administration/index.php
Еслиhttps://mydomain.com/administration/index.php
был введен, перенаправлений нет.
Это понятно, и проблема ниже.
Я хочу, чтобы / admin каталог был защищен паролем. Моя панель управления хостингом позволяет защищать каталоги без ручного создания .htaccess и .htpasswd (вы выбираете каталог для защиты, создаете имя пользователя и пароль, а .htaccess и .htpasswd создаются автоматически). Итак, .htaccess появляется в папке / Administration. .htpasswd появляется где-то еще, путь к .htpasswd правильный, и все выглядит правильно (он работает так же, как и его создание вручную). Итак, в проекте есть 2 файла .htaccess, один в корневом каталоге и один в каталоге / Administration (с .htpasswd в каталоге .htaccess знает, где он находится).
После того, как пароль создан, результаты:
Вы вводите:
https://mydomain.com/administration/index.php
Затем он просит ввести пароль. Если вы введете это правильно,https://mydomain.com/administration/index.php
отображается.Результат: работает отлично.
Но если вы введете http://mydomain.com/administration/index.php
(да, http, без S), затем вместо перенаправления на ту же, но https страницу, он перенаправляет на
https://mydomain.com/401.shtml (starts with httpS)
по неизвестной причине и даже не спрашивает пароль.Почему?
Я связался со службой поддержки по этому вопросу, и они уверены, что проблема в файле .htaccess, и они не исправляют файлы .htaccess (это понятно, их нет, я не против).
Почему это происходит? Я забыл поставить некоторые флаги или некоторые опции для изменения настроек по умолчанию в файле .htaccess?
P.S. Создание .htaccess и .htpasswd вручную (не из панели управления хостингом) для папки / администрирования вызывает ту же ошибку 401 в случае, если не https, но был введен http.
И проблема появляется с URL-адресами только в / Administration Directory.
Спасибо.