I have this really weird problem which I've already spent a lot of time investigating, but failed to find a solution.
Basically, I have a few domains parked in the server, but for simplicity, let's assume just 2 domains:
I have 2 requirements I'd like to satisfy:
So basically, in one sentence, I want all traffic to simply go to https://www.example.co.nz no matter what URL patterns I type into the location bar.
I have written a .htaccess file in the root like this:
SetEnv TZ
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTPS} !^on [OR]
RewriteCond %{HTTP_HOST} !^www\.example\.co\.nz
RewriteRule (.*) https://www.example.co.nz/$1 [R=301,L]
RewriteCond %{REQUEST_URI} ^/(system|lib)(.*)$
RewriteRule ^(.*)$ index.php?/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>
The following works:
The following does not get redirected:
I was wondering if this is related to my htaccess or the server itself.
Any help would be high appreciated.
Found the problem.
The redirect is actually working. You get a warning about the certificate at https://www.example.com when you attempt to visit the website. Once you accept the warning, you are redirected to https://www.example.co.nz/.
That is because the SSL check is applied before the .htaccess rewrites. Since there is no certificate installed for www.example.com, you get a warning.
The only way around that is to install an SSL certificate for www.example.com as well.