9. ProxyPass%#*3%ProxyPassReverse%/-1'.%)#8'%&)+.%45/<V%
ProxyPass pattern substitution
ProxyPassReverse pattern substitution
!*K%TFD%&)#&%(5*&#+*.%&)'%.&/+*6%;#&&'/*%0+11%)#8'%&)#&%;#/&%54%&)'%TFD%/';1#('3%
0+&)%&)'%.&/+*6%.-7.&+&-&+5*9
D'&%.%.#K%K5-/%#;;1+(#&+5*%+.%/-**+*6%5*%http://www.example.com9%R+&)%&)'.'%&05%
;/5$K%/-1'.%+*%;1#('?%#*K%/',-'.&%&5V
http://www.example.com/ysearch/
+.%#-&5<#&+(#11K%/'3+/'(&'3%&5V%
http://api.search.yahoo.com/WebSearchService/V1/
(,.2.&X%Z7L,%R[&%>,7$K
!*5&)'/%;/5$K%5;&+5*%+.%&5%0/+&'%#%.'/8'/2.+3'%0'7%.(/+;&%&)#&%)#*31'.%#11%;/5$K%
<'()#*+(.%+&.'149%R)K%05-13%K5-%35%&)+.%0)'*%.5%<#*K%5;&+5*.%#/'%7-+1&%+*&5%&)'%
0'7%.'/8'/S%P'/)#;.%K5-%/'%0'7%)5.&+*6%(5<;#*K%35'.*%&%1'&%K5-%<53+4K%0'7%
.'/8'/%(5*4+6-/#&+5*.9%N/%;'/)#;.%K5-%0#*&%&5%0/+&'%#%;/5$K%&)#&%.%&#+15/'3%&5%K5-/%
.;'(+4+(%#;;1+(#&+5*9
=)'%P'/1%.(/+;&%7'150%;/5$+'.%&)'%c#)55e%O'#/()%.'/8+('9%H*%4-*(&+5*?%+&@.%+3'*&+(#1%
&5%5-/%'#/1+'/%'$#<;1'.?%7-&%+&%/',-+/'.%*5%()#*6'.%&5%&)'%!;#()'%0'7%.'/8'/%
(5*4+6-/#&+5*9%
#!/usr/bin/perl
#---------------------------------------------
# A simple, specific, proxy as a standalone
# server script.
#---------------------------------------------
use strict;
use LWP::Simple;
# Constants
my $REAL_URL =
quot;http://api.search.yahoo.com/WebSearchService/V1/webSearchquot;;
my $APPID = quot;Perl+API+install+testquot;;
# Append the Yahoo! Search appid to the parameter string.
my $parameters = $ENV{QUERY_STRING} . quot;&appid=$APPIDquot;;
# Retrieve data from the Yahoo! server using the Perl LWP module.
my $data = get quot;$REAL_URL?$parametersquot;;
9
6728'2&9':quot;;'!quot;+<$=quot;
10. # Output the HTTP header followed by the retrieved XML.
# Anything a server CGI script sends to standard output
# is sent back to the browser.
print quot;Content-type: text/xmlnnquot;;
print $data;
H*&'11+'6'*&%;/5$+'.%35*@&%*''3%&5%7'%15*6%#*3%(5<;1+(#&'39%%:-&%0)#&%+4%K5-%35*@&%
0#*&%&5%0/+&'%#%;/5$K%L%5/%0)#&%+4%K5-%(#*@&S%%c5-/%)5.&+*6%.'/8+('%<#K%*5&%1'&%K5-%
4+331'%#/5-*3%0+&)%&)'+/%;/5$K%/-1'.9%%
?1)%+TW>?%?#X%5#/I
=)'%E=BD%O_FHP=%%1'&.%K5-%'<7'3%A#8#.(/+;&%+*%K5-/%0'7%;#6'%+*%5*'%54%&05%
0#K.V
<script>
Your Javascript goes here.
</script>
5/%
<script src=”http://random.server/somescript.js”>
H&@.%&)+.%.'(5*3%<'&)53%L%;-11+*6%#%A#8#.(/+;&%4+1'%4/5<%.5<'%.'/8'/%L%&)#&@.%&)'%
.5-/('%54%&)'%O_FHP=%%)#(J9%%c5-%(#*%6/#7%*5&%5*1K%A#8#.(/+;&%(53'?%7-&%3#&#%#.%
0'119%%N*1K%3#&#%45/<#&&'3%#.%A#8#.(/+;&%57quot;'(&.%(#*%7'%&/#*.4'/'3?%7-&%&)+.%45/<#&?%
AON`?%+.%6#+*+*6%+*%;5;-1#/+&K9
?,#')@7AA%G]C%+R!>%-0D%W:+?
ON!P%GO+<;1'%N7quot;'(&%!(('..%P/5&5(51I%+.%#*%CBD27#.'3%;/5&5(51%-.-#11K%
&/#*.;5/&'3%-.+*6%&)'%E==P%;/5&5(519%%FQO=%GF';/'.'*&#&+5*#1%O&#&'%=/#*.4'/I%
-.'.%&)'%.'<#*&+(.%54%E==P%+&.'14%&5%+<;1'<'*&%0'7%.'/8+('.9
!%&/+8+#1%ON!P%0'7%.'/8+('%/',-+/'.%.+6*+4+(#*&1K%<5/'%W.&-44X%&)#*%#*%',-+8#1'*&%
FQO=%.'/8+('%35'.9%%H&%+.%;5..+71'%&5%<#J'%#%ON!P%/',-'.&%4/5<%A#8#.(/+;&?%7-&%#%
4#+/%#<5-*&%54%;1-<7+*6%+.%/',-+/'3%L%75&)%&5%<#J'%&)'%/',-'.&%#*3%;#/.'%&)'%
/'.-1&.9%%:K%(5<;#/+.5*?%FQO=%/',-'.&.%#/'%54&'*%.+<;1'%E==P%PNO=%#*3%UQ=%
/',-'.&.%L%&#+15/2<#3'%45/%CEF%GCBDE&&;F',-'.&I%(#11.9
=)'/'%#/'%A#8#.(/+;&%1+7/#/+'.%&)#&%(#*%;'/45/<%ON!P%(#11.9%%H@<%*5&%#0#/'%54%
#*K5*'%0)5@.%-.+*6%&)'<9
10 6728'2&9':quot;;'!quot;+<$=quot;#