私は、GeoServer を使用してマッピング データを提供する OpenLayers ベースのマッピング アプリケーションを構築しています。問題は、WMS 経由で要求しているマップ イメージの他に、jQuery AJAX を使用して GeoServer から情報を取得していることです。GeoServer は別のポートで実行されているため、JavaScript のクロスサイト スクリプティング セキュリティ ポリシーにより、要求がブロックされています。
Javaアプリケーションとして、GeoServerはApacheのポート8080で実行され、IISインスタンスはポート80で実行されています。プロキシを構築する代わりに、IIS7でURL書き換えを使用するこの問題を解決するために、私はこのガイドしかし、まだ機能していません。URL 書き換えルールの設定は次のとおりです。
- 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
、同じリクエストをポート 8080 で実行すると適切な結果が返されるのに、返されるのは 404 だけです。
何が間違っているのでしょうか? 前もって感謝します。
答え1
条件については、{HTTP_URL} ではなく {URL} を試し、アクションについては、書き換えではなくリダイレクトであることを確認してください。
答え2
同じルールが 8080 のリクエストをピックアップし、それを無限に書き換えようとしていますか? ただし、そうであれば、404 ではなく、タイムアウトまたはクエリ文字列の長さのエラーが予想される結果になると思います。
失敗した要求トレースを使用していますか? Fiddler を使用していますか? http.sys をトレースしていますか?