我尝试获取请求参数“授权”的值并将其存储在请求的标题“授权”中。
第一个重写规则工作正常。在第二个重写规则中,$2 的值似乎没有存储在环境变量中。因此,请求标头“授权”为空。
任何想法 ?谢谢。
<VirtualHost *:8010>
RewriteLog "/var/apache2/logs/rewrite.log"
RewriteLogLevel 9
RewriteEngine On
RewriteRule ^/(.*)&authorization=@(.*)@(.*) http://<ip>:<port>/$1&authorization=@$2@$3 [L,P]
RewriteRule ^/(.*)&authorization=@(.*)@(.*) - [E=AUTHORIZATION:$2,NE]
RequestHeader add "Authorization" "%{AUTHORIZATION}e"
</VirtualHost>
我需要处理几种情况,因为有时参数在路径中,而在某些情况下它们在查询中。取决于用户。最后一个案例失败了。AUTHORIZATION 的标头值看起来是空的。
# if the query string includes the authorization parameter
RewriteCond %{QUERY_STRING} ^(.*)authorization=@(.*)@(.*)$
# keep the value of the parameter in the AUTHORIZATION variable and redirect
RewriteRule ^/(.*) http://<ip>:<port>/ [E=AUTHORIZATION:%2,NE,L,P]
# add the value of AUTHORIZATION in the header
RequestHeader add "Authorization" "%{AUTHORIZATION}e"