以前は正しく機能している次のコードを使用して、ドメイン/サブドメインのそれぞれのルートURLを、対応するサブディレクトリにリダイレクトします。
RewriteCond %{HTTP_HOST} ^sub1.domain1.com
RewriteCond %{REQUEST_URI} !subs/sub1.domain1.com/
RewriteRule ^(.*)$ subs/%{HTTP_HOST}/$1 [L,QSA]
RewriteCond %{HTTP_HOST} ^sub2.domain1.com
RewriteCond %{REQUEST_URI} !subs/sub1.domain2.com/
RewriteRule ^(.*)$ subs/%{HTTP_HOST}/$1 [L,QSA]
RewriteCond %{HTTP_HOST} ^sub1.domain2.com
RewriteCond %{REQUEST_URI} !subs/sub1.domain2.com/
RewriteRule ^(.*)$ subs/%{HTTP_HOST}/$1 [L,QSA]
RewriteCond %{HTTP_HOST} ^sub2.domain2.com
RewriteCond %{REQUEST_URI} !subs/sub2.domain2.com/
RewriteRule ^(.*)$ subs/%{HTTP_HOST}/$1 [L,QSA]
ただし、別のサブまたはドメインを追加する場合は、上記のコードに追加する必要があります。以下のように、ワイルドカード(*)のように機能するように単純化すると、はるかに便利になります。
RewriteCond %{HTTP_HOST} ^sub
RewriteCond %{REQUEST_URI} !/subs/
RewriteRule ^(.*)$ subs/%{HTTP_HOST}/$1 [L,QSA]
そのため、サブドメイン名にサブのプレフィックスが付いている限り(sub3.domain1.com、sub1.domain3.comなど)、別のサブドメイン/ドメインが追加されても、コードは有効なままです。