My Squid Reverse Proxy only accepts HTTPS requests. What is a short way to redirect/rewrite a HTTP-request to https?
So if the user visits
http://foo.server.com he should be automatically redirected to
One way is to get the origin server to do the redirect, but it seems more efficient to get Squid to do it. There are a couple of approaches, but using deny_info seems the easiest.
In the squid.conf configuration file:
acl PORT80 myport 80 acl MYSITE dstdomain foo.server.com http_access deny PORT80 MYSITE deny_info 301:https://foo.server.com%R MYSITE
At first glance, the http_access statement just denies access to the HTTP version of your site. However due to the deny_info statement Squid will redirect users to an alternative site (in this case the HTTPS version) rather than simply giving an access-denied message.
%R tag causes the request URL path to be included in the redirect, so that if users try to visit
http://foo.server.com/bar then they'll get directed to
https://foo.server.com/bar, rather than just
The full list of URL format tags is available in the Squid documentation: http://www.squid-cache.org/Doc/config/deny_info/
The order of the acl statements is important because Squid only remembers the last
http_access deny and looks for the
deny_info to match that acl.