Я запускаю сервер apache за порталом https и имею проблему с перенаправлением каталога. Мой сервер apache - контейнер докеров, который получает запросы, отправленные контейнером портала https (steveltn/https-portal). Все работает нормально, за исключением перенаправления http по умолчанию, которые сделаны для http вместо https. Например, скажем, у нас есть каталог с именем test на моем веб-сайте apache. Вызов https://example.com/test возвращает код 301 с перенаправлением на http://example.com/test/. Правильное поведение было бы перенаправлением на https.Apache-каталог, связанный с чертой слэш, за https
Сначала я подумал, что это была неправильная конфигурация моего портала https, и попросил команду steveltn/https-portal. Но они ответили, что это проблема в моей конфигурации apache (https://github.com/SteveLTN/https-portal/issues/67#issuecomment-257934618). Резюме ответа является
PORTAL делает говорить Apache о его существовании по запросу заголовок X-Forwarded-Proto: протокол HTTPS. Некоторые веб-приложения автоматически распознают этот заголовок , например WordPress. Я думаю, теперь это до вас, чтобы настроить веб-приложение, чтобы признать этот заголовок
Я пробовал много конфигурации найденной в сети Интернет, например, это одно, но никто не решает проблему:
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
</VirtualHost>
Если я изменю RewriteCond на% {HTTP: X-Forwarded-Proto} https, я получаю бесконечный цикл перенаправления.
Любая идея?
Спасибо, что указал мне в правильном направлении. Проблема с этим решением - запрос на недостающие ресурсы также перенаправляется. Я обновляю свой вопрос с помощью решения, которое я построил на вашем предложении. –