Ищу способ переписать не-www-домены на www-домены, при этом не перенаправляя прямые IP-запросы.
У меня есть несколько сайтов на одном сервере, то есть: хост по умолчанию (виртуальный) и один виртуальный хост с именем сервера и несколькими псевдонимами серверов, которые отлично работают. Я предпочитаю, чтобы имена доменов начинались с «www». Итак, я взломал следующий код вместе, который отлично работает:
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Он не обрабатывает https, но самая большая проблема в том, что запросы к серверу-IP также переписываются, например, с. «123.45.67.8» на «www.123.45.67.8». Я мог бы добавить строку ниже, чтобы решить эту проблему:
RewriteCond %{HTTP_HOST} !^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$
... но так ли это эффективно? А как насчет IPv6?
Будучи не mod_rewrite-wiz, я пытался выяснить, как другие люди решили эту проблему, но безуспешно.