Re: Help with rewriterule

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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#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:// ?
And how do I handle Webmail as well as webmail?  Would that be

RedirectMatch ^.*[wW]ebmail https://%{SERVER_NAME}%{REQUEST_URI} [L,R]

thanks


[Index of Archives]     [Open SSH Users]     [Linux ACPI]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Squid]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]

  Powered by Linux