У меня есть приложение Spring Data REST с подключенным браузером HAL.
Приложение работает на localhost:8080/app/
, поэтому браузер HAL работает на localhost:8080/app/browser/index.html#/app/
.
В браузере hal есть один файл java, который перенаправляет звонки на номера /app
на /app/browser/dinex.html#/app
. Этот файл: https://github.com/spring-projects/spring-data-rest/blob/master/spring-data-rest-hal-browser/src/main/java/org/springframework/data/rest/webmvc/halbrowser/HalBrowser.java
Теперь это приложение работает за обратным прокси (apache httpd). Там у меня есть следующие правила:
ProxyPass /hal/ http://localhost:8080/app/
ProxyPassReverse /hal/ http://server1/app/
Итак, запросы http://server1/hal/browser/index.html#/hal/
показывают работающий браузер HAL.
Однако запросы к http://server1/hal/
получат 302 (из приложения) с заголовком Location
с http://server1/hal/browser/index.html#/app/
. Это не сработает, потому что часть за #.
Мне кажется, я понимаю, что ProxyPassReverse
не предназначен также для переписывания вещей, стоящих за хэштегом #
.
Итак, в чем моя проблема? Браузер HAL неправильно добавляет хэштег в тег Location
? Или это нормальное поведение и может ли Apache решить эту проблему?