На моем сервере 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]
RewriteCond
соответствует любому HTTP_HOST, который НЕ начинается с www.
RewriteRule
предваряет www.
на обратную ссылку на RewriteCond
(% 1) затем добавляет фактический запрос с обратной ссылкой на RewriteRule
строка соответствия