嵌入url参数的Apache url编码变量

时间:2019-06-12 22:40:54

标签: apache mod-rewrite prerender

我认为B标志会导致对变量进行url编码,但这是行不通的。

下面的代码将%{QUERY_STRING}注入而未将&编码到%26中。

RewriteRule ^(.*PATTERN.*) http://scooterlabs.com/echo?url=http://host.com/$1?%{QUERY_STRING} [B,P,L]

path/?a=1&b=2将被代理到http://scooterlabs.com/echo?url=http://host.com/path/?a=1&b=2,而不是必需的http://scooterlabs.com/echo?url=http://host.com/path/?a=1%26b=2

1 个答案:

答案 0 :(得分:1)

我可以使用它,但是只能通过设置url cgi脚本来充当apache和prerender之间的代理,从而以可以被prerender解析的方式正确编码url并将cgi脚本用作目标RewriteRule(例如/proxy.cgi/http://host.com/$1?%{QUERY_STRING}

代理的主要特征是它不需要将URL代理为url parameter ,而是将其作为cgi PATH_INFO变量,从而不需要初始问号?查询令牌。