我有一个查询字符串URL:http://localhost/cgi-bin/qgis_mapserv.fcgi?map=/home/qgis/project/map.qgs。我想在变量映射中跟踪map.qgs路径。除了map变量之外,还有一些变量(版本、请求、服务等)。我需要的是:
模式:^cgi/qgis_mapserv.fcgi?map=map.qgs&(.)$ RewriteRule: RewriteRule
找出我失败的尝试:
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/cgi-bin/qgis_mapserv.fcgi$
RewriteCond %{QUERY_STRING} ^map=([A-Za-z0-9.-_]+)$
RewriteRule ^cgi-bin/qgis_mapserv.fcgi?(.*)$ cgi-bin/qgis_mapserv.fcgi?$1注意: map变量可以显示在模式uRL中的任何其他变量中。
我想知道上面的代码中缺少了什么
发布于 2021-04-08 03:40:07
你快到了。您的规则不起作用的原因是您无法在queryString模式中测试RewriteRule。
您需要将规则的模式更改为
RewriteRule ^cgi-bin/qgis_mapserv.fcgi$通过此更改,您的htaccess规则如下所示:
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/cgi-bin/qgis_mapserv.fcgi$
RewriteCond %{QUERY_STRING} ^map=([A-Za-z0-9./-_]+)/map.qgs$
RewriteRule ^/?cgi-bin/qgis_mapserv.fcgi$ /cgi-bin/qgis_mapserv.fcgi?%1 [R,L]https://stackoverflow.com/questions/66994168
复制相似问题