If you are using Apache and
<acronym title="Secure Sockets Layer">SSL
</acronym> as a proxy front-end for your Ruby on Rails application, you might have a problem with redirects if the backend server (Mongrel, for example) does not use SSL.
In a nutshell, you'll discover that redirects are sent to a non-SSL
<acronym title="Uniform Resource Locator">URL
</acronym> (noticeably lacking an
http://). This is almost certainly not what you want, and will likely break if your firewall is configured to only allow SSL traffic on
<acronym title="Transmission Control Protocol">TCP
</acronym> port 443.
The solution is a quick one line addition in your Apache configuration file.
RequestHeader set X_FORWARDED_PROTO 'https'
When Rails sees this header in a request, it automatically creates all redirect URLs with the necessary
https:// to ensure that everything goes where it should.
Photo by IstvÃ¡n Benedek.