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

htaccess - поддомены подстановки для вложенных папок

Итак, идея в том, что у меня есть:

domain.com/.subdomains/domain1 (2,3,4,etc)

И я хочу отобразить:

domain1.domain.com -> domain.com/.subdomains/domain1/
domain2.domain.com -> domain.com/.subdomains/domain2/

Но я хочу, чтобы он игнорировал www.

Я делаю это полууспешно с этим:

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^(.*)\.domain\.com [NC]
RewriteRule ^(.*)$ http://domain.com/.subdomains/%1/$1 [NC,QSA,L,P]

Есть две проблемы:

1) Это не игнорирование "www"

2) Когда я перехожу к URL:

http://domain3.domain.com/deep/subfolder/here/index.html

он перенаправляет меня на:

http://domain.com/.subdomains/domain3/deep/subfolder/here/index.html

Я пытался найти ответы, но не могу найти никого, у кого есть эта проблема. Любые идеи?

Спасибо!

РЕДАКТИРОВАТЬ:

Хорошо, кажется, я не могу использовать http, но если я изменю

RewriteRule ^(.*)$ http://domain.com/.subdomains/%1/$1 [NC,QSA,L,P]

к

RewriteRule ^(.*)$ /.subdomains/%1/$1 [NC,QSA,L,P]

Заходит в странный цикл перенаправления

Я заставил его работать с этим:

RewriteEngine on

RewriteBase /

# MAGIC
RewriteCond $1 !/$
RewriteCond $1 !\.
RewriteRule ^(.+)$ /$1/ [R=301,L]
# //MAGIC

RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{HTTP_HOST} ^([a-z0-9][-a-z0-9]+)\.domain\.com
RewriteCond %{REQUEST_URI} !^/.subdomains/
RewriteRule ^(.*)$ /.subdomains/%1/$1 [L]

Я хорошо понимаю остальную часть кода, кроме волшебной части - как-то она исправляет эту ошибку:

http://domain3.domain.com/deep/subfolder/here/index.html

Чтобы

http://domain.com/.subdomains/domain3/deep/subfolder/here/index.html

Сейчас этого не происходит, благодаря МАГИИ ... Хотел бы я знать, почему это сработало.