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

htaccess переписывает все поддомены в подкаталоги

Я пытаюсь создать комплексную систему для любых поддоменов (не охваченных предыдущими правилами перезаписи) для определенного домена и обслуживать веб-сайт из подкаталога, который находится в той же папке, что и файл .htaccess. У меня уже есть мой vhosts.conf для отправки всех несопоставленных запросов в папку «игровая площадка», где я хочу легко создавать новые поддомены, просто добавляя подпапку.

Итак, моя структура выглядит так:

/var/www/playground
              |-> /foo
              |-> /bar

.Htacces, находящиеся в папке / Playground, а / foo и / bar - это отдельные веб-сайты. я хочу http://foo.domain.com указать на / foo и http://bar.domain.com в бар.

Вот мой файл .htaccess:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^([^.]+).domain.com$ [NC]
RewriteCond %{REQUEST_URI} !^/%1/(.*)
RewriteRule ^(.*) /%1/$1 [L]

Это должно захватить субдомен, добавить его как подпапку в RewriteRule, а затем добавить после косой черты и информацию о пути. Второй RewriteCond предназначен для предотвращения бесконечного цикла. Я предполагал, что% 1 во втором RewriteCond сможет захватить группу захвата в первом RewriteCond. Но до сих пор у меня не было успеха, это всегда заканчивалось циклом перенаправления. Если бы я заменил% 1 во втором RewriteCond жестко запрограммированным 'foo' или 'bar', это сработает, что заставляет меня полагать, что вы не можете ссылаться на группу захвата внутри RewriteCond. Это правда? Или я что-то упускаю?

Надеюсь, я правильно вас понял:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^([^.]+).domain.com$ [NC]
RewriteCond %{REQUEST_URI} !%1
RewriteRule ^(.*)$ /%1/$1 [L]