Раньше я использовал следующий код, который работает правильно, чтобы перенаправить корневой 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]
Таким образом, всякий раз, когда добавляются другие субдомены / домены, если имя субдомена имеет префикс sub (например, sub3.domain1.com, sub1.domain3.com и т. Д.), Код остается действительным.