Я использую rewrite_mod для перезаписи запросов веб-сервисов. Если QUERY_STRING запроса содержит определенный параметр, тогда URL-адрес получит некоторые дополнительные параметры. Это мое условие перезаписи. Я также использую RewriteMap, который определяет пару ключ-значение. Когда RewriteCond будет соответствовать, значение ключа будет добавлено к переписанному URL.Как получить исходный URL-адрес запроса в качестве значения по умолчанию, если RewriteRule не соответствует ключу RewriteMap?
Что все работает нормально, но теперь я хочу добавить значение по умолчанию в подменю RewriteRule, если RewriteMap не сможет найти ключ в файле RewriteMap. Синтаксис в RewriteRule выглядит как ${ MapName : LookupKey | DefaultValue }
. Когда Look-up-Key не будет найден, вместо этого будет использоваться DefaultValue.
То, что я точно хочу, заключается в том, что, когда ключ не найден, будет использоваться исходный URL-адрес запроса, и никакая замена не будет выполнена.
Мои первые подходы заключались в использовании ${MapName:$1|http://%{HTTP_HOST}%{REQUEST_URI}?{QUERY_STRING}}
или ${MapName:$1|http://%{HTTP_HOST}%{REQUEST_URI}}
, но все это не работает. Я не знаю, что поставить как DefaultValue после |
.