使用RewriteMap,RewriteCond和RewriteRule,无法从地图中检索默认值

时间:2016-11-04 02:03:00

标签: apache mod-rewrite rewritemap

我正在使用apache将用户的应用程序从旧服务器重定向到新服务器。这是基于用户的x-user-id标头完成的。我创建了一个RewriteMap,其中包含要使用映射的x-user-id新url。

40951879-077e-41a6-bbab-adbded39550d https://serverV2.domain.com/

我有以下重写配置。

RewriteMap xuserid txt:/etc/apache2/map.txt
RewriteCond %{HTTP:x-user-id} ^(.*)
RewriteCond ${xuserid:%1} ^$
RewriteRule ^/(.*)$ ${xuserid:$1|https://serverV1.domain.com/$1} [QSA,NE,NC,P]

我也尝试过这个配置的最后一行......

RewriteRule ^/(.*)$ ${xuserid:%1|https://serverV1.domain.com/$1} [QSA,NE,NC,P]

当x-user-id不在地图中时,会发送到serverV1.domain.com。当用户在地图中时,我什么也得不到。在这种情况下,它应该是serverV2.domain.com。

我无法弄清楚如何检索与LookupKey对应的DefaultValue。有人可以指出我做错了吗?

谢谢!

0 个答案:

没有答案