Перезапись URL-адреса IIS 7 на GeoServer, работающий на Apache

Перезапись URL-адреса IIS 7 на GeoServer, работающий на Apache

Я создаю картографическое приложение на основе OpenLayers, которое использует GeoServer для обслуживания картографических данных. Проблема в том, что помимо изображений карт, которые я запрашиваю через WMS, я использую jQuery AJAX для получения информации из GeoServer. Поскольку GeoServer работает на другом порту, мои запросы блокируются из-за политик безопасности межсайтового скриптинга в JavaScript.

Как приложение Java,GeoServer работает на Apache на порту 8080, в то время как мой экземпляр IIS работает на порту 80.. Вместо того, чтобы создавать прокси, я решилиспользовать URL Rewriting в IIS7чтобы исправить эту проблему. Я следуюэто руководство, но это все еще не работает. Вот мои настройки правила URL Rewrite:

  • Соответствует URL-адресу:(.*)
  • Состояние: {HTTP_URL}соответствие/geoserver
  • Действие: переписать в http://localhost:8080/{R:1}, добавив строку запроса

Однако при запросе http://localhost/geoserver/wms?QUERY_LAYERS=SanDiego:FWSA_sandiego&LAYERS=SanDiego:FWSA_sandiego&SERVICE=WMS&VERSION=1.1.1&FEATURE_COUNT=20&REQUEST=GetFeatureInfo&EXCEPTIONS=application/vnd.ogc.se_xml&BBOX=-13009123.590156,3862057.2905992,-13006066.109025,3865114.7717302&INFO_FORMAT=text/html&x=20&y=20&width=40&height=40&srs=EPSG:900913я получаю только 404, хотя тот же запрос на порт 8080 возвращает правильный результат.

Что я делаю не так? Заранее спасибо.

решение1

Для условия попробуйте {URL} вместо {HTTP_URL}, а для действия убедитесь, что это перенаправление, а не перезапись.

решение2

Это то же самое правило, которое берет запрос на 8080 и пытается переписать его до бесконечности? Хотя я предполагаю, что если бы это было так, то ожидаемым результатом был бы тайм-аут или ошибка длины строки запроса, а не 404.

Используете ли вы трассировку неудачных запросов? Используете Fiddler? Трассировка http.sys?

Связанный контент