Допустим есть два сайта: a.s и b.s.
Содержат только простейший файл index.html. Файлы конфигурации виртуальных хостов a.conf и b.conf:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName a.s
DocumentRoot /var/www/a
</VirtualHost>
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName b.s
DocumentRoot /var/www/b
</VirtualHost>
Также, есть дефолтный виртуальный хост z.s, с конфигцрационным файлом 000-default.conf.
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName z.s
DocumentRoot /var/www/html
</VirtualHost>
/etc/apache2/apache2.conf
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
Сайты открываются в браузере по своим именам. Все окей.
Теперь для каждаого сайта необходимо сделать 301 редирект:
www.a.s =>
a.s
www.b.s =>
b.s
Добавил в корень дефолтного сайта (z.s) файл .htaccess c содержимым).
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
.
Всё редиректится, всё отлично, в общем.
Если же создать свой файл .htaccess для каждого сайта, с более конкретным условием, например для сайта a.s делаю вот так:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.a.s$ [NC]
RewriteRule ^(.*)$ http://a.s/$1 [R=permanent,L].
и так для каждого сайта с соответствующими изменениями,
то открывается контент дефолтного сайта и без редиректа.
Таким образом, в моем случае, htaccess работает только если его разместить в дефолтном сайте.
Подскажите, какие настройки поправить, чтобы htaccess был у каждого сайта свой?
Ведь, например, когда имеем разные cms и у каждой свой htaccess, каким образом делать свой редирект для каждого сайта?
Создавать пустой дефолтный хост 000-default со своим htaccess? или что?