Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache 当重写规则不';与“重写映射”键不匹配?_Apache_Mod Rewrite_Service_Request_Rewritemap - Fatal编程技术网

Apache 当重写规则不';与“重写映射”键不匹配?

Apache 当重写规则不';与“重写映射”键不匹配?,apache,mod-rewrite,service,request,rewritemap,Apache,Mod Rewrite,Service,Request,Rewritemap,我正在使用rewrite_mod重写web服务请求。如果请求的查询字符串包含某个参数,则URL将获取一些附加参数。这是我的重写条件。我还使用定义键值对的重写映射。当RewriteCond匹配时,密钥的值将添加到重写的URL中 这一切都很好,但现在我想在重写规则的替换中添加一个默认值,以防重写映射在重写映射文件中找不到键。重写规则中的语法类似于${MapName:LookupKey | DefaultValue}。当找不到查找键时,将使用DefaultValue 我真正想要的是,当找不到密钥时,将

我正在使用rewrite_mod重写web服务请求。如果请求的查询字符串包含某个参数,则URL将获取一些附加参数。这是我的重写条件。我还使用定义键值对的重写映射。当RewriteCond匹配时,密钥的值将添加到重写的URL中

这一切都很好,但现在我想在重写规则的替换中添加一个默认值,以防重写映射在重写映射文件中找不到键。重写规则中的语法类似于
${MapName:LookupKey | DefaultValue}
。当找不到查找键时,将使用DefaultValue

我真正想要的是,当找不到密钥时,将使用原始请求URL,并且不会进行替换


我的第一种方法是使用
${MapName:$1 | http://%{http_HOST}%{REQUEST_URI}?{QUERY_STRING}}
${MapName:$1 | http://%{http_HOST}%{REQUEST_URI}
,但都不起作用。我不知道在
|
之后应该将什么作为默认值

我刚刚找到了解决问题的办法。有必要定义一个RewriteCond来检查RewriteMap文件中是否有正确的密钥。如果它不在映射文件中,则重写规则将是scipt,并将使用原始请求URL

RewriteCond看起来像
RewriteCond${MapName:$1 |未找到}!未找到