You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@httpd.apache.org by John Moore <jo...@pdsi-software.com> on 2006/02/03 17:44:20 UTC

Re: [users@httpd] Redirecting http traffic to an https virtual host

Peter,

Here is what I have in production today on a Apache 2.0.X server.  This 
is within a VirtualHost.   Suggest defining a rewrite log and setting 
logging level high to see what's going on behind the scene if this 
doesn't work for you.

John

<Location "/xyz">
    RewriteEngine on
    RewriteCond %{SERVER_PORT} !=443
    RewriteRule ^.*/xyz(.*)$ https://%{SERVER_NAME}/xyz$1 [R]
</Location>


Peter Clark wrote:
>
>     I have been reassured by the documentation that this is an easy 
> problem,
> but for some reason I'm not having much luck. I'm running Apache 
> 2.0.52 on
> Debian Sarge, and I want to use Squirrelmail with SSL. No problems 
> running
> Squirrelmail at https://webmail.mydomain.tld. But what I want is for all
> requests to http://webmail.mydomain.tld to be redirected to https://. 
> Here's
> where I run into trouble. /etc/apache2/httpd.conf has the line
> "NameVirtualHost 1.2.3.4" and I have the virtual domain for
> webmail.mydomain.tld stored in /etc/apache2/sites-available/webmail:
> ---
> /etc/apache2/sites-available/webmail:
> <Directory /var/www/webmail>
>   php_flag register_globals off
>   Options Indexes FollowSymLinks
>   <IfModule mod_dir.c>
>     DirectoryIndex index.php
>   </IfModule>
> </Directory>
>
> # users will prefer a simple URL like http://webmail.example.com
> <VirtualHost webmail.mydomain.tld:443>
>   SSLEngine on
>   SSLCertificateFile /etc/ssl/mydomain.tld/Cert.pem
>   SSLCertificateKeyFile /etc/ssl/mydomain.tld/PrivateKey.pem
>   DocumentRoot /var/www/webmail
>   ServerName webmail.mydomain.tld
>   ServerAdmin postmaster@mydomain.tld
> </VirtualHost>
>
> <VirtualHost webmail.mydomain.tld:80>
>   ServerName webmail.mydomain.tld
>   Redirect permanent / https://webmail.mydomain.tld
> </VirtualHost>
> ---
>     If I have /etc/apache2/sites-available/webmail set up like this, I 
> get the
> following error when trying to start Apache:
> ---
> Starting web server: Apache2[Mon Dec 20 14:44:46 2004] [error] 
> VirtualHost
> webmail.mydomain.tld:80-- mixing * ports and non-* ports with a
> NameVirtualHost address is not supported, proceeding with undefined 
> results
> [Mon Dec 20 14:44:46 2004] [error] VirtualHost 
> webmail.mydomain.tld:443 --
> mixing * ports and non-* ports with a NameVirtualHost address is not
> supported, proceeding with undefined results 
> ---
> However, if I comment out the "<VirtualHost webmail.mydomain.tld:80>" and
> following lines, and change "<VirtualHost webmail.mydomain.tld:443>" to
> "<VirtualHost webmail.mydomain.tld>", traffic to 
> http://webmail.mydomain.tld
> isn't redirected.
>     I also tried putting an .htaccess file in /var/www/webmail (which 
> is a
> symbolic link to /usr/share/squirrelmail, Squirrelmail's home 
> directory) with
> the following contents:
> ---
> DirectoryIndex index.php
>
> <IfModule mod_rewrite.c>
>         RewriteEngine On
>         RewriteCond %{SERVER_PORT}      !^443$
>         RewriteRule ^(.*)$      https://%{SERVER_NAME}/webmail/$1 
> [L,R=303]
> </IfModule>
> ---
> But still traffic isn't redirected. I've checked that mod_rewrite is 
> enabled.
> So what obvious thing am I missing?
>     Thanks,
>     :Peter
>
> ---------------------------------------------------------------------
> The official User-To-User support forum of the Apache HTTP Server 
> Project.
> See <URL:http://httpd.apache.org/userslist.html> for more info.
> To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
>    "   from the digest: users-digest-unsubscribe@httpd.apache.org
> For additional commands, e-mail: users-help@httpd.apache.org
>



---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
   "   from the digest: users-digest-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org