httpd-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Luca Toscano <toscano.l...@gmail.com>
Subject Re: [users@httpd] Help with rewriterule
Date Mon, 06 Mar 2017 09:07:36 GMT
Hi Robert,

2017-03-05 21:57 GMT+01:00 Robert Moskowitz <rgm@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)?


> 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).

Hope that helps!

Luca

Mime
View raw message