我正在使用rewrite_mod來重寫Web服務請求。如果請求的QUERY_STRING包含某個參數,則該URL將獲得一些其他參數。這是我的重寫條件。我還使用定義鍵值對的RewriteMap。當RewriteCond匹配時,密鑰的值將被添加到重寫的URL中。如何在RewriteRule與RewriteMap鍵不匹配時將原始請求URL作爲默認值?
這一切都正常,但現在我想添加一個默認值到RewriteRule的替代,以防RewriteMap在RewriteMap文件中找不到鍵。 RewriteRule中的語法看起來像${ MapName : LookupKey | DefaultValue }
。當找不到查找鍵時,將使用DefaultValue。
我真正想要的是,當沒有找到密鑰時,將使用原始請求URL並且不會進行替換。
我的第一種方法是使用${MapName:$1|http://%{HTTP_HOST}%{REQUEST_URI}?{QUERY_STRING}}
或${MapName:$1|http://%{HTTP_HOST}%{REQUEST_URI}}
但它們都不起作用。我不知道在|
之後要把DefaultValue放在什麼位置。