Apache Mod_Rewrite Question Mark



我需要用以下URL重定向传入请求:

http://mywebsite.com/abc/mapserv.exe?map=123

http://mywebsite.com/abc/mapserv.exe?map=C:\Mapserver\ms4w\Apache\htdocs\Mapfiles\123.map

我已经设法做了简单的mod_rewrites,但问号一直在扼杀这个。我无法将常见的查询字符串示例适应我的情况,所以我需要帮助处理这个确切的情况。

就像你没有展示你的尝试一样,你可以测试这个:

RewriteEngine On
RewriteCond %{QUERY_STRING} map=([0-9]+)$
RewriteRule . %{REQUEST_URI}?map=C:\Mapserver\ms4w\Apache\htdocs\Mapfiles\%1.map [NE,L]

使用的重写标志:NE:无法逃脱,L: 最后一条要运行的指令。

我仍然在使用.exe url时遇到问题,因为如果您在发送请求时没有正确传递参数,则无法访问该url。然后重定向不会启动。所以我制作了一个伪mapserver.php文件,它允许设置这样的参数:

http://mywebsite.com/abc/mapserver.php?map=123

经过几个小时的尝试,我最终得到了以下重写规则:

RewriteCond %{QUERY_STRING} ^map=(.*)$
RewriteRule ^mapserver.php?$ /cgi-bin/mapserv.exe?map=C://Mapserver//ms4w//Apache//htdocs//Mapfiles//%1.map

最新更新