Назад | Перейти на главную страницу

Перенаправить все голые домены виртуального хоста на сайт www

На моем сервере Apache много VirtualHosts и я хотел бы иметь один правило, которое перенаправит голый домен для всех на www домен. Это возможно?

Основываясь на другом ответе, я смог заставить его работать, создав всеобъемлющий VirtualHost внизу файла, которые перенаправляют запрос на именованный www хозяин

<VirtualHost *:80>
  ServerName default
  ServerAlias *
  <IfModule mod_rewrite.c>
    RewriteEngine on
    # WITH 'www.'
    RewriteCond %{HTTP_HOST} !^www.(.*) [nocase]
    RewriteRule ^(.*)$ http://www.%{HTTP_HOST}$1 [redirect=permanent,nocase,last]
  </IfModule>
</VirtualHost>

Примерно так должно работать:

RewriteCond %{HTTP_HOST} !^www.(.*) [nocase]
RewriteRule ^/(.*)$ http://www.%1/$1 [redirect=permanent,nocase,last]
  1. В RewriteCond соответствует любому HTTP_HOST, который НЕ начинается с www.
  2. В RewriteRule предваряет www. на обратную ссылку на RewriteCond (% 1) затем добавляет фактический запрос с обратной ссылкой на RewriteRule строка соответствия