Mod_Rewrite Субдомен / проблема перезаписи пути - PullRequest
0 голосов
/ 09 марта 2011

У меня есть существующее правило для переписывания: subdomain.domain.com

в этот формат: domain.com / каталог / index.aspx? ID = субдомен

RewriteCond %{HTTP_HOST} !^www\. [NC]<br/>
RewriteCond %{HTTP_HOST} ^([^.]+)\.domain\.com [NC]<br/>
RewriteRule ^$ /directory/index.aspx?id=%1 [NC,QSA,L]

Мне нужно обновить это для поддержки: subdomain.domain.com / Foo

в этом формате: domain.com / каталог / foo.aspx? ID = субдомен Я попытался внести следующие изменения в мое существующее правило без успеха:

RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} ^([^.]+)\.domain\.com/(.*)
RewriteRule ^$ /directory/%2.aspx?id=%1 [NC,QSA,L]

Не похоже, что второй RewriteCond сопоставляется.Я что-то упустил?Должно ли это быть обработано по-другому?Спасибо.

1 Ответ

0 голосов
/ 17 марта 2011

Переменная HTTP_HOST содержит значение в заголовке HTTP «Host:», то есть в вашем случае «subdomain.domain.com».Конечный URI (косая черта и т. Д.) Отсутствует.

Вам необходимо сопоставить эту часть URL в вашем правиле:

RewriteCond %{HTTP_HOST} !^www\. [NC]<br/>
RewriteCond %{HTTP_HOST} ^([^.]+)\.domain\.com [NC]<br/>
RewriteRule ^/([^/]+)$ /directory/$1.aspx?id=%1 [NC,QSA,L]

Salut,

Jordi.

...