forcing http to go to https
Rodolfo J. Paiz
rpaiz at simpaticus.com
Fri Jun 25 04:31:34 UTC 2004
At 08:30 PM 6/24/2004, Steven Stern wrote:
>I've worked around all of it by deleting all the webmail virtualhosts and PHP
>redirects and putting this at the start of the VirtualHosts list:
Allow me to suggest a different approach, and one which has been working on
my server for a while now.
<VirtualHost *>
ServerName www.domain.com
ServerAdmin webmaster at domain.com
DocumentRoot /var/www/domain
RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^/(.*) https://%{SERVER_NAME}/$1 [L,R,NC]
</VirtualHost>
What this does is act on any connection which does not come in on port 443.
That part is obvious. The neat thing is that it then takes everything in
the URL after the first slash with the (.*) and remembers it as $1. By
"after the first slash" I mean after the slash at the end of
http://www.domain.com/ <-- that last slash. So everything after that slash,
that is the internal URL, is memorized. The URL is then rewritten as
https://www.domain.com/$1 where "www.domain.com" came from the SERVER_NAME
httpd variable and $1 is the internal URL as memorized earlier. I don't
remember what the L,R,NC do... read the httpd docs! <grin>
Result: *any* page on your site will then be immediately and forcibly
redirected to the very same URL but over the secure connection. Works
*beautifully*.
--
Rodolfo J. Paiz
rpaiz at simpaticus.com
http://www.simpaticus.com
More information about the fedora-list
mailing list