I'm using Apache and I want to redirect all received request to the ssl virtual host.
So I have the following line in the regular http virtual host:
RedirectMatch (.*) https://www.mydomain.com$1
which basicaly replace $1 by everything.
It works perfectly. But now, I need to access a particular CGI that cannot be on the SSL virtual host. So I would like to redirect all request, except the following:
"http://www.mydomain.com/mycgi/cgi.php"
I have search on this forum and found some post concerning regex exclusion, but none is working. Any help would be greatly appreciated.
Thanks. Alain
Apache 2.2 and later has negative lookahead support in regular expressions. If you are using Apache 2.2 or later this should work:
RedirectMatch ^/(?!mycgi/cgi.php)(.*) https://www.mydomain.com/$1
I believe the RedirectMatch is a short-circuit sorta deal. What this means, is that if you put another RedirectMatch ahead of your match-all, only the first match will execute. so something like...
RedirectMatch (/mycgi/cgi.php) http://www.mydomain.com$1
RedirectMatch (.*) https://www.mydomain.com$1
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With