Можете ли вы использовать Redirect и Proxypass одновременно

16

Я использую Apache 2.2.15 на CentOS, чтобы предоставить SSL для приложения TomCat.

ProxyPass / http://127.0.0.1:8090/ connectiontimeout=300 timeout=300
ProxyPassReverse / http://127.0.0.1:8090

Это работает хорошо, и все отлично; Тем не менее, я хочу добавить следующую строку:

Redirect permanent /broken/page.html https://www.servername.com/correct/page.html

перед тем как обрабатывать ошибку в самом приложении TomCat. Однако, похоже, что он работает не так, как я ожидаю (то есть он ничего не делает и ничего не меняет). Можно ли использовать Redirect таким способом? У меня нет возможности редактировать приложение, к сожалению.

bombcar
источник

Ответы:

23

Да! Выше ProxyPass /добавьте:

ProxyPass /broken/page.html !

Это заставит прокси-сервер не действовать на страницу, которую вы пытаетесь перенаправить.

Шейн Мэдден
источник
Спасибо! Мне было интересно, если бы я должен был сделать что-то подобное, но я подумал, что этого будет достаточно. Прекрасно работает!
бомбардировщик
2
Другой пример работы над stackoverflow: stackoverflow.com/questions/26595592/use-redirect-and-proxypass/…
Кристофер Шульц
9

<Proxy>блоки также полезны, поскольку всегда понимается, что контекст применяется к прокси-трафику. Таким образом, вам не нужно исключать конкретные пути.

<Proxy *>
    Redirect permanent /broken/page.html https://www.example.com/correct/page.html
    RedirectMatch ^/deadstuff.+ http://www.example.com/correct/page.html
</Proxy>

ProxyPass / http://127.0.0.1:8090/ connectiontimeout=300 timeout=300
ProxyPassReverse / http://127.0.0.1:8090
Андрей Б
источник