2017-03-06 19:15 GMT+01:00 Robert Moskowitz <r...@htt-consult.com>:

> Luca,
>
> Thank you for replying.
>
> On 03/06/2017 04:07 AM, Luca Toscano wrote:
>
> Hi Robert,
>
> 2017-03-05 21:57 GMT+01:00 Robert Moskowitz <r...@htt-consult.com>:
>
>> Hello,
>>
>> This is for Apache 2.4 on Centos7.  I am migrating from Apache 2.2 on
>> Centos6.
>>
>> I want to support redirecting all webmail queries to https.  for either
>> queries to:
>>
>> webmail.foo.com or foo.com/webmail
>>
>> My old rules were:
>>
>> <VirtualHost *:80>
>>     ServerName webmail.htt-consult.com
>>     ServerAlias webmail
>>     RewriteEngine On
>>         RewriteCond  %{SERVER_PORT} !^443$
>>         RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
>>         ExpiresDefault "access plus 10 years"
>>         AddOutputFilterByType DEFLATE text/html text/plain text/xml
>>     php_admin_flag session.cookie_secure "1"
>> </VirtualHost>
>>
>> This SEEMED to only work for the webmail virtual host, and not others on
>> this server.  When I used this rule set on the new server, it clearly was
>> redirecting all web accesses to https.
>
>
> Have you checked if the VirtualHost is the default one (you can use
> apachectl -S to confirm)?
>
>
> Comes back <null> response.
>


This is really strange.. Have you checked if the apachectl binary is
working correctly?


>
>
>> So I tried to write a more restrictive rule, trying to follow
>> instructions from
>>
>> http://httpd.apache.org/docs/current/rewrite/intro.html
>>
>> It would seem the rule:
>>
>>         RewriteRule ^.*webmail https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
>>
>> Should work, but the test site I tried:
>>
>> http://martinmelin.se/rewrite-rule-tester/
>>
>> Did not show this did the rewrite to https.
>
>
> So from http://httpd.apache.org/docs/current/mod/mod_rewrite.
> html#rewriterule:
>
> "RewriteRule Pattern Substitution [flags]"
> "In VirtualHost context, The Pattern will initially be matched against the
> part of the URL after the hostname and port, and before the query string
> (e.g. "/app1/index.html"). This is the (%-decoded) URL-path."
>
> If I got it correctly you are trying to match the hostname in the Pattern,
> that shouldn't work in Vhost context.
>
> Also how to direct Webmail.foo.com to https://webmail.foo.com?
>>
>
> https://httpd.apache.org/docs/2.4/mod/mod_alias.html#redirect or
> https://httpd.apache.org/docs/2.4/mod/mod_alias.html#redirectmatch might
> help you (and in my opinion they are way more maintainable than rewrite
> rules).
>
>
>
> RedirectMatch ^.*webmail https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
>
> But how do I get this NOT to redirect when it is already https:// ?
>

It shouldn't be a problem if you use the rule only in the Virtual Host
listening on port 80 (since no https request should land there).


> And how do I handle Webmail as well as webmail?  Would that be
>
> RedirectMatch ^.*[wW]ebmail https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
>

I would do multiple tests on your environment to see which one works best :)

Thanks!

Luca

Reply via email to