我正在使用 rewrite_mod 来重写 Web 服务请求。如果请求的 QUERY_STRING 包含某个参数,则 URL 会获取一些附加参数。这是我的重写条件。我还使用了定义键值对的 RewriteMap。当 RewriteCond 匹配时,键的值将被添加到重写的 URL。
一切正常,但现在我想在 RewriteRule 的替换中添加一个默认值,以防 RewriteMap 在 RewriteMap 文件中找不到键。RewriteRule 中的语法看起来像${ MapName : LookupKey | DefaultValue }
. 当找不到查找键时,将使用默认值。
我真正想要的是,当找不到密钥时,将使用原始请求 URL,并且不会进行替换。
我的第一个方法是使用${MapName:$1|http://%{HTTP_HOST}%{REQUEST_URI}?{QUERY_STRING}}
或${MapName:$1|http://%{HTTP_HOST}%{REQUEST_URI}}
但没有一个有效。我不知道在|
.