我有一个附带HAL浏览器的Spring Data REST应用程序。
该应用程序在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可以解决这个问题吗?