Рассмотрим как перенаправить www.example.com на example.com через htaccess.
Эта статья относится к разряду быстрых заметок, чтобы можно было не гуглить, в подсмотреть в своих записях.
Есть один стандартный способ:
RewriteCond %{HTTP_HOST} ^www\.example\.com [NC]
RewriteRule ^(.*)$ http://example.com/$1 [L,R=301]
Но здесь мы жестко в htaccess прописываем доменное имя. Но есть ли способ сделать это универсальным способом без жесткого кодирования доменного имени?
Еще один метод без домена:
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
Но если нам нужно сделать это для разделения http и https, то есть такой вариант:
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
Если вы хотите сделать это в файле httpd.conf, вы можете сделать это без mod_rewrite
, и, очевидно, это лучше для производительности):
<VirtualHost *>
ServerName www.example.com
Redirect 301 / http://example.com/
</VirtualHost>
Как правило рабочие варианты могут отличаться от хостинга к хостингу. Здесь уже придется использовать тестирование.