Я ищу способ переписать не-www-домены на www-домены, при этом не перенаправляя прямые IP-запросы.
У меня есть несколько сайтов на одном сервере, то есть: виртуальный хост по умолчанию и один VirtualHost с ServerName и несколько ServerAlias, которые работают отлично. Я предпочитаю, чтобы доменные имена начинались с "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, я пытался выяснить, как другие люди решили эту проблему, но безуспешно.