首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重写Apache Query_String

重写Apache Query_String
EN

Stack Overflow用户
提问于 2021-04-07 21:12:33
回答 1查看 182关注 0票数 1

我有一个查询字符串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

找出我失败的尝试:

代码语言:javascript
复制
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中的任何其他变量中。

我想知道上面的代码中缺少了什么

EN

回答 1

Stack Overflow用户

发布于 2021-04-08 03:40:07

你快到了。您的规则不起作用的原因是您无法在queryString模式中测试RewriteRule。

您需要将规则的模式更改为

代码语言:javascript
复制
  RewriteRule ^cgi-bin/qgis_mapserv.fcgi$

通过此更改,您的htaccess规则如下所示:

代码语言:javascript
复制
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]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66994168

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档