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 <rgm@xxxxxxxxxxxxxxx>:
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.
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.
"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# or https://httpd.apache.org/docs/redirect 2.4/mod/mod_alias.html# might help you (and in my opinion they are way more maintainable than rewrite rules).redirectmatch
RedirectMatch ^.*webmail https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
But how do I get this NOT to redirect when it is already https:// ?
And how do I handle Webmail as well as webmail? Would that be
RedirectMatch ^.*[wW]ebmail https://%{SERVER_NAME}%{REQUEST_URI} [L,R]