Итак, у меня есть конфигурация для apache, которая работает в 99% случаев. Он проверяет значение заголовка в запросе и на основе этого перенаправляет на правильный URL-адрес версии API с 307
положение дел. Это работает для всех клиентов, которые правильно реализуют стек http. к сожалению, у меня есть приложение, которое не следует этому и конвертирует все POST
запросы в GET
.
Итак, это proxy.conf
что я получил прямо сейчас:
RewriteEngine On
RewriteCond %{HTTP:X-Android-Version} =660
RewriteRule ^/services/6/(.*)$ /services/internal/6/$1 [R=307]
RewriteCond %{HTTP:X-Android-Version} >661
RewriteRule ^/services/6/(.*)$ /services/internal/7/$1 [R=307]
ProxyPass /services/internal/7 http://mbe700:8080/services/6
ProxyPass /services/internal/6 http://mbe600:8080/services/6
Так что мне интересно:
Возможно ли использовать такой же прокси-пропуск без использования правила перезаписи URL, поскольку в моем случае это не работает?
Оказывается, это было намного проще, чем я предполагал ... просто изменение флага в rewriterule, похоже, помогло.
RewriteEngine On
RewriteCond %{HTTP:X-Android-Version} =660
RewriteRule ^/services/6/(.*)$ /services/internal/6/$1 [P]
RewriteCond %{HTTP:X-Android-Version} >661
RewriteRule ^/services/6/(.*)$ /services/internal/7/$1 [P]
ProxyPass /services/internal/7 http://mbe700:8080/services/6
ProxyPass /services/internal/6 http://mbe600:8080/services/6