Предыдущее решение заканчивается очень забавным бесконечным циклом перенаправления. Вот решение, которое я получил сейчас (не очень элегантно, но оно работает; но с огромным «но»):
# Working solution for five levels of sub-domains
RewriteEngine on
RewriteCond %{HTTP_HOST} ^([^\.]+)\.DOMAIN\.TLD [NC,OR]
RewriteCond %{HTTP_HOST} ^([^\.]+)\.([^\.]+)\.DOMAIN\.TLD [NC,OR]
RewriteCond %{HTTP_HOST} ^([^\.]+)\.([^\.]+)\.([^\.]+)\.DOMAIN\.TLD [NC,OR]
RewriteCond %{HTTP_HOST} ^([^\.]+)\.([^\.]+)\.([^\.]+)\.([^\.]+)\.DOMAIN\.TLD [NC,OR]
RewriteCond %{HTTP_HOST} ^([^\.]+)\.([^\.]+)\.([^\.]+)\.([^\.]+)\.([^\.]+)\.DOMAIN\.TLD [NC]
RewriteRule (.*) http://DOMAIN.TLD/%5./%4./%3./%2./%1./$1 [R,L]
Может кто-нибудь объяснить мне, почему (черт возьми) это работает? Это действительно работает, я тщательно его протестировал. Но почему это работает на самом деле? Если я посмотрю на строку RewriteRule, я сомневаюсь, что она должна работать ... Спасибо за ваши объяснения.
Кстати: если вышеперечисленные пять условий перезаписи и правила работают, похоже, что они могут быть переписаны каким-то «двухстрочным» (одно условие плюс одно правило) Я уже пробовал это, используя приведенное выше правило и следующее условие вместо пяти приведенных выше условий:
RewriteCond %{HTTP_HOST} ^(([^\.]+)\.)+DOMAIN\.TLD [NC]
и немного поиграл, но без особого успеха. Спасибо за все идеи, как упростить
переписать материал и сделать его более «вменяемым» (если это возможно).
-
NKD