On Sat, Sep 17, 2005 at 06:47:12PM +0200, Marco wrote:
> OK. Apache2 works perfectly now. Thanks :-)
>
> I have also an other question to the rewrite module and Apache2. I have
> configurated a virtual host with ssl.
> I would like all connection to "https://*.domain.com" are rewritten to
> "http://www.domain.com" except for
> all connection to "https://*.domain.com/webmail" that they must be
> concurred.
>
> ex. https://pop.domain.com --> http://www.domain.com
> https://domain.com --> http://www.domain.com
> https://www.domain.com/webmail --> https://www.domain.com/webmail
> https://domain.com/webmail --> https://www.domain.com/webmail
> https://pop.domain.com/webmail --> https://www.domain.com/webmail
>
> This also for the other domains (domain1.com, domain2.com ecc.)
>
> Can you help me again??
>
> Thanks
>
> Marco
Hi Marco,
I haven't used rewriting in SSL-servers, but it should work like this:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.domain.com [NC]
RewriteCond %{REQUEST_URI} !^/webmail [NC]
RewriteCond %{HTTP_HOST} !^$
RewriteRule ^/(.*) http://www.domain.com/$1 [L,R]
RewriteCond %{HTTP_HOST} !^www.domain.com [NC]
RewriteCond %{REQUEST_URI} ^/webmail [NC]
RewriteCond %{HTTP_HOST} !^$
RewriteRule ^/(.*) https://www.domain.com/$1 [L,R]
With these rules, if you have your SSL virtual hosts separate from your
non-SSL virtual hosts, add those lines to your SSL virtual hosts. Then
http://anything.domain.com/webmail would go to the
http://www.domain.com/webmail, so that might still need special handling
depending on how you want it handled. If you want
http://anything.domain.com/webmail to go to the
https://www.domain.com/webmail then you need to add another rule in
addition to the ones in your non-SSL virtual hosts that are working
right now (before them):
RewriteCond %{REQUEST_URI} ^/webmail [NC]
RewriteRule ^/(.*) https://www.domain.com/$1 [L,R]
If on the other hand you have your SSL virtual hosts in the same virtual
hosts as your non-SSL virtual hosts, replace the rules which are working
right now with the rules above. The
http://anything.domain.com/webmail would then go to the
https://www.domain.com/webmail. To make the
http://www.domain.com/webmail to go to the
https://www.comain.com/webmail, add those two lines before the other
rules.
If you want only https requests to go to the SSL virtual host, then you
can use:
RewriteCond %{HTTPS} ^on$
to check if the request is https or not.
So once again, depending on your setup and how you want those http vs.
https cases handled, there are a few possibilities :)
Simo
--
:r ~/.signature
Attachment:
signature.asc
Description: Digital signature