.htaccess переписать: субдомен как GET var и путь как GET var

Желаемый результат:

http://example.com/ -> index.php http://www.example.com/ -> index.php http://hello.example.com/ -> index.php?subdomain=hello http://whatever.example.com/ -> index.php?subdomain=whatever http://example.com/world -> index.php?path=world http://example.com/world/test -> index.php?path=world/test http://hello.example.com/world/test -> index.php?subdomain=hello&path=world/test 

С помощью .htaccess у меня есть прямо сейчас, я могу добиться одного или другого повторного сопоставления, но не одновременно.

 RewriteEngine On # Parse the subdomain as a variable we can access in PHP, and # run the main index.php script RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{HTTP_HOST} !^www RewriteCond %{HTTP_HOST} ^([^\.]+)\.([^\.]+)\.([^\.]+)$ RewriteRule ^.*$ index.php?subdomain=%1 # Map all requests to the 'path' get variable in index.php RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ /index.php?path=$1 [L] 

Мне сложно совместить два … любые указатели, пожалуйста?

РЕДАКТИРОВАТЬ
Нежелательное поведение, которое я испытываю сейчас, заключается в том, что если у меня есть субдомен и путь после .com /, будет передан только субдомен, то есть:

 http://hello.example.com/world-> index.php?subdomain=hello 

Используйте первое правило для добавления параметра subdomain без изменения URI, затем используйте второе правило для маршрутизации URI в index.php :

 RewriteEngine On # Parse the subdomain as a variable we can access in PHP, and # run the main index.php script RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{HTTP_HOST} !^www RewriteCond %{HTTP_HOST} ^([^\.]+)\.([^\.]+)\.([^\.]+)$ RewriteRule ^(.*)$ /$1?subdomain=%1 # Map all requests to the 'path' get variable in index.php RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ /index.php?path=$1 [L,QSA] 

Второе правило должно иметь флаг QSA , иначе строка запроса первого правила будет потеряна.