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 redi开发者_运维知识库rected 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.
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]
精彩评论