Apache – URL rewriting for different protocols in .htaccess

.htaccessapacheApache2mod-rewriteurl-rewriting

I need help with url-rewriting in .htaccess.

So the issue is about different protocols: https and http. The main purpose of rewriting is to remove "www" from URL, but protocol should stay the same it was before.

For example, when I have URL like http://www.domain.com/request, it should be redirected to the http://domain.com/request. I resolve it with these rules:

RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

But in case, when URL looks like https://www.domain.com/request it should be redirected to https://domain.com/request.

Unfortunately, the above rule will redirect to http regardless current protocol.

Thanks in advance.

Best Answer

This is fairly similar to the linked possible duplicate, but since that one forces www where you want to remove it, it might warrant a separate answer.

Try something like this:

RewriteCond %{HTTP_HOST} ^www\.
RewriteCond %{HTTPS}s ^on(s)|off
RewriteCond http%1://%{HTTP_HOST} ^(https?://)(www\.)?(.+)$
RewriteRule ^ %1%3%{REQUEST_URI} [R=301,L]
Related Topic