2009-09-28 1 views
1

Я пытаюсь mod-rewrite на основе поддомена. Как взять субдомен и добавить его в конец моего нового домена?Поддомен как переменная в mod_rewrite

Пример:

RewriteCond %{HTTP_HOST} ^users\.example\.com$ 
RewriteRule ^(.*)$ http://www.example.com/?subdomain=[variable for sub]  [L] 

Как получить 'пользователи' в [переменную для суб]?

ответ

4

Матчи с последним RewriteCond сохраняются как% N, так что вы можете сделать это:

RewriteCond %{HTTP_HOST} ^(users)\.example\.com$ 
RewriteRule ^(.*)$ http://www.example.com/?subdomain=%1 [L] 
+1

Это нормально. Но у меня есть тоны условий и правил, которые используют переключение домена в файле .htaccess. Они выглядят как .dev .stage .test envs. И создание RewriteCond в каждом из них довольно вредно. Могу ли я установить один определенный в состоянии при начале запроса? Создание R..R - [E = domain:% 1], после чего - R..R redirectLink {ENV: domain} не работает. Как я могу получить это позже от переменной в RewriteRule в правильном манере? – lazycommit

0

ответ Грег имеет только один субдомен (пользователи), мне нужно было правило WildCard перепишет (все субдомены), так что я использовал следующее:

RewriteEngine on 

RewriteCond %{HTTP_HOST} ^([\w\d]+)\.example\.com$ 
RewriteRule ^(.*)$ http://example.com/?subdomain=%1&path=$1 [NC,L,QSA] 

или как обратный прокси-сервер:

RewriteCond %{HTTP_HOST} ^([\w\d]+)\.example\.com$ 
RewriteRule ^(.*)$ http://%1.backendserver.com:3001/$1 [L,P,QSA] 
Смежные вопросы