Неполадки при работе с картографическим сервером cgi-bin / mapserv и map = mapfile.map - PullRequest
1 голос
/ 12 февраля 2020

Я использую Mapserver 7.0.7 (MS4W 3.2.8), и у меня возникают проблемы с оборачиванием cgi-bin / mapserv и map = mapfile.map


отлично работает в

http://localhost/cgi-bin/mapserv.exe?map=C: / ms4w / apps / Leaflet / mapserver / Leaflet.map & service = WMS & request = GetMap и слои = LAT & styles = & format = image% 2Fpng & transparent = true & version = 1.3.0 & tiled = true & width = 512 & height = 512 & crs = EPSG % 3A3857 & bbox = -6574807.424977722, -3443946.7464169012, -6261721.357121639, -3130860.67856082

результат


в папке RewriteRule. на моей листовке js web

RewriteRule ^ ms (. *) $ http://localhost/cgi-bin/mapserv.exe?map=C: / ms4w / apps / Leaflet / mapserver / Leaflet.map $ 1

http://10.1.3.21/Leaflet/ms&service=WMS&request=GetMap&layers=LAT&styles=&format=image%2Fpng&transparent=true&version=1.3.0&tiled=true&width=512&height=512&crs=EPSG%3A3857&bbox=-6574807.424977722, - 3443946.7464169012, -6261721.357121639, -3130860.67856082

результат:

Не найдено Запрошенный URL / Leaflet / ms & service = & мож запрос = GetMap & слои = LAT & стили = & = формат изображения / PNG и прозрачно = верно и версия = 1.3.0 & плиточный = истина & ширина = 512 & высота = 512 & CRS = EPSG: 3857 & BBOX = - 6574807.424977722, -3443946.7464169012, -6261721.357121639, -3130860.67856082 не найден на этом сервере.


, но является рабочим запросом GetCapabilities

http://localhost/Leaflet/ms&service=WMS&version=1.0.0&request=GetCapabilities

и заменяется на =>

http://localhost/cgi-bin/mapserv.exe?map=C: / ms4w / apps / Leaflet / mapserver / Leaflet.map & service = WMS & version = 1.0.0 & request = GetCapabilities

результат:

<!--  end of DOCTYPE declaration  -->
<WMT_MS_Capabilities version="1.0.0">
<!--
 MapServer version 7.0.7 (MS4W 3.2.8) OUTPUT=PNG OUTPUT=JPEG OUTPUT=KML SUPPORTS=PROJ SUPPORTS=AGG SUPPORTS=FREETYPE SUPPORTS=CAIRO SUPPORTS=SVG_SYMBOLS SUPPORTS=SVGCAIRO SUPPORTS=ICONV SUPPORTS=FRIBIDI SUPPORTS=WMS_SERVER SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT SUPPORTS=WCS_SERVER SUPPORTS=SOS_SERVER SUPPORTS=FASTCGI SUPPORTS=THREADS SUPPORTS=GEOS SUPPORTS=POINT_Z_M INPUT=JPEG INPUT=POSTGIS INPUT=OGR INPUT=GDAL INPUT=SHAPEFILE 
-->
<Service>
<Name>GetMap</Name>
<Title>Leaflet - WMS</Title>
<OnlineResource>http://localhost/Leaflet/ms?</OnlineResource>
</Service>
... 

1 Ответ

0 голосов
/ 06 мая 2020

Ваше правило перезаписи удаляет важный ? символ строки запроса, создавая недопустимый запрос, такой как /Leaflet/ms&service=WMS&..., но он должен выглядеть как /Leaflet/ms?service=WMS... Попробуйте правило, такое как:

RewriteRule ^ms?(.*)$ http://localhost/cgi-bin/mapserv.exe?map=C:/ms4w/apps/Leaflet/mapserver/Leaflet.map$1
...