Это похоже на запрос кода, а не на вопрос, но сегодня я чувствую себя хорошо. Итак, вот оно.
RewriteEngine On
RewriteRule ^index2\.php - [L]
RewriteCond %{HTTP_HOST} !^$ [NC]
RewriteCond %{HTTP_HOST} !^(www\.)example\.com [NC]
RewriteCond %{HTTP_HOST} ^(www\.)?([^.]+)\.example.com [NC]
RewriteRule ^([^/]+/)?([^/]+/)? index2.php?x=%2&y$1&z=$2 [L,QSA]
index2.php необходим, потому что в противном случае перезапись застрянет в цикле (вы можете просто включить index.php внутри него, поэтому нет необходимости копировать код) Для этого и предназначена строка 2. Если он обнаружит, что перезапись уже выполнена, он на этом остановится. Строка 3 гарантирует, что перезапись не происходит в основном домене. В строке 4 берется часть субдомена (www. Необязательно) и помещается в% 2. Строка 5 выбирает необязательную первую и вторую папку и использует их вместе с именем субдомена для создания ожидаемого URL. Обратите внимание, что '/' включено в y и z, потому что в противном случае правилу пришлось бы легко разбираться во многих скобках.