摘要: 在一般的情况下,使用MapServer WMS服务,需要使用下面格式的URL发起请求: http://my.host.com/cgi-bin/mapserv?map=mywms.map& 有人会指出,上面的URL中含有 MapServer特有的参数,这是非...
在一般的情况下,使用MapServer WMS服务,需要使用下面格式的URL发起请求:
http://my.host.com/cgi-bin/mapserv?map=mywms.map&
有人会指出,上面的URL中含有 MapServer特有的参数,这是非法的。当然,事实并非这样。“map=...”并不是MapServer的特有参数,它是由“?”或“&”分割的在线资源URL的一部分,是符合标准规范的。
从另一方面讲,即使上面的URL是合法的,它依旧是丑陋的,不符合REST风格。如果你想使用更好的URL来指向你的在线资源WMS服务,下面有一些方法。
第一种是使用 Apache的ReWrite规则,这种方法在文档 在MapServer CGI中使用Apache ReWrite模块隐藏MapFile的路径中作过介绍。还可以使用Apache SetEnvIf 方法,以及更多的脚本方法。本文主要介绍使用Apache环境变量的方法,这种方法也是本网站在建立地图服务器时,在配置MapServer服务器中使用的主要方法。
通过在Apaceh中建立别名,可以在其中指定 MS_MAPFILE 环境变量。
Alias /mywms /usr/lib/cgi-bin/mapserverSetHandler cgi-script Options ExecCGI SetEnv MS_MAPFILE /path/to/mymapfile.map
这样,上面的WMS服务的URL就简化了。