The cleanest way of doing this, doesn't even need mod_rewrite. Just define two virtualhosts, one for the non-ssl host and one for the ssl host:
NameVirtualHost *:80 <VirtualHost *:80> ServerName www.example.com Redirect permanent / https://www.example.com/ </VirtualHost> NameVirtualHost *:443 <VirtualHost *:443> ServerName www.example.com DocumentRoot /path/to/htdocs/ SSLEngine On ...etc... </VirtualHost> On Fri, Mar 2, 2012 at 3:59 PM, Vivek Nambiar <vivek1namb...@gmail.com>wrote: > Hi Experts, > > I have a quick question regarding rewrite rule. > > My aim is to redirect users http URL to https URL. > > Like suppose the user enters the URL as follows in the web browser > > http://servername:port/myapp then it should redirect itself to > https://servername:SSLport/myapp. > > I have added the following rewrite condition and rule in my httpd.conf file > > RewriteCond %{SERVER_PORT} PORT > RewriteRule ^/(.*)$ https://%{SERVER_NAME}:SSLPORT/$1 [R,L]. > > The rewrite rule works only if I use the url as http://servername:port/myapp/ > (i have to add a "/" infront of my application) > > if I use http://servername:port/myapp then the rewrite is done only for > the port,that is it changes to http://servername:sslport/myapp (http does > not change to https). > > Thanks in advance for your help. > -- Gr, Mathijs