On Fri, Dec 9, 2011 at 8:08 AM, Jason Farnsworth <span dir="ltr"><<a href="mailto:jason@pethub.com">jason@pethub.com</a>></span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

We are hosted on Amazon Web Services and all SSL termination is done by an<br>
Elastic Load Balancer.  So all I'm looking to do is re-write URLs like<br>
this<br>
<br>
<a href="http://domain.com" target="_blank">http://domain.com</a> -> <a href="https://www.domain.com" target="_blank">https://www.domain.com</a><br>
<a href="http://www.domain.com" target="_blank">http://www.domain.com</a> -> <a href="https://www.domain.com" target="_blank">https://www.domain.com</a><br>
<a href="https://domain.com" target="_blank">https://domain.com</a> -> <a href="https://www.domain.com" target="_blank">https://www.domain.com</a></blockquote><div><br></div><div>Varnish will not rewrite the actual content coming from the backend. We can however, _redirect_ the client whenever they ask for a http:// URL.</div>

<div><br></div><div>We use the following code on <a href="http://varnish-cache.org">varnish-cache.org</a> to do this:</div><div><br></div><div>in vcl_recv:</div><div><div><br></div><div>  if ( (req.http.host ~ "(?i)<a href="http://www.varnish-cache.org">www.varnish-cache.org</a>") && !(client.ip ~ localhost)) {</div>

<div>    set req.http.x-redir-url = "https://" + req.http.host + req.url;</div><div>    error 750 req.http.x-redir-url;</div><div>  }</div></div><div><br></div><div>(..)</div><div><br></div><div><br></div><div>
<div>
sub vcl_error {</div><div>  # standard redirection in VCL:</div><div>  if (obj.status == 750) {</div><div>    set obj.http.Location = obj.response;</div><div>    set obj.status = 302;</div><div>    return(deliver);</div>
<div>
  }</div><div>}</div></div><div><br></div><div> </div><div>Since we have an SSL terminator in front of Varnish client.ip is localhost when there is SSL present. You might want to change the code to test <span class="Apple-style-span" style="color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 13px; background-color: rgba(255, 255, 255, 0.917969); ">X-Forwarded-Proto for whatever it is set to.</span></div>

<div><br></div></div><div><br></div>-- <br><img src="http://www.varnish-software.com/sites/default/files/varnishsoft_white_190x47.png"><div>Per Buer, CEO<br>Phone: +47 21 98 92 61 / Mobile: +47 958 39 117 / Skype: per.buer<br>

<i>Varnish makes websites fly!</i><div><a href="http://www.varnish-software.com/whitepapers" target="_blank">Whitepapers</a> | <a href="http://www.youtube.com/watch?v=x7t2Sp174eI" target="_blank">Video</a> | <a href="https://twitter.com/varnishsoftware" target="_blank">Twitter</a> <br>

<br></div></div><br>