У меня есть рабочая конфигурация, которая выглядит так
ProxyPass /roundcube protocol://127.0.0.1:8080/roundcube
ProxyPassReverse /roundcube protocol://127.0.0.1:8080/roundcube
когда я иду в
http://www.example.com/roundcube
or
https://www.example.com/roundcube
оба или должным образом проксированы на сервер 127.0.0.1:8080, как и ожидалось.
Однако я хотел бы иметь больше контроля над тем, когда происходит проксирование, поэтому я хотел бы использовать параметр mod_rewrite [P], а не директиву ProxyPass, показанную выше. Я пробовал следующее:
RewriteEngine On
RewriteRule ^/roundcube$ /roundcube/ [R]
RewriteRule ^/roundcube/(.*) protocol://127.0.0.1:8080/roundcube/$1 [P]
ProxyPassReverse /roundcube protocol://127.0.0.1:8080/roundcube
С этой конфигурацией, когда я перехожу к
http://www.example.com/roundcube
запрос проксируется правильно, как и ожидалось.
НО когда я иду в
https://www.example.com/roundcube
запрос 404.
Итак, мой вопрос: почему прокси-сервер mod_rewrite не работает так же, как версия ProxyPass, в отношении запросов http и https? Мои два приведенных выше примера должны быть функционально эквивалентны, исходя из моего понимания, но, похоже, это не так. Что мне не хватает? Я не смог отследить какую-либо документацию, которая объясняла бы это. Спасибо!