2009-11-07 6 views
0

У меня есть требование, чтобы я хотел проверить заголовки запроса и в соответствии с этим хочу переслать входящий запрос в соответствующий субдомен моей компании.Переадресация одного домена другому на основе заголовка запроса

Например:

запрос заголовка приходит тогда он идет к a.domain.com всегда (независимо от того, запрос не приходит к a.domain.com или b.domain.com)

Аналогично запрос заголовок B идет, тогда он всегда идет на b.domain.com.

Хотя я могу сделать это, изменив мое приложение (проверяя заголовки запроса в нем), а затем перенаправляя запрос, но я хочу, чтобы вместо запроса доступа к серверу приложений его сначала обрабатывал веб-сервер.

Есть ли что-то доступное (как-то вроде CGI), которое может обрабатывать IIS, а также Apache, поскольку у моей компании есть поддомены, на которых размещаются приложения на этих двух.

Любая помощь очень ценится. Благодаря

+0

Не могли бы вы быть более конкретными в отношении вашей установки? – phoebus

ответ

1

В Apache вы можете использовать mod_rewrite, чтобы направить запрос на другой домен, что-то вроде следующего, возможно:

rewriteEngine on 
rewriteBase/
rewriteCond %{HTTP_HOST} ^A$ 
rewriteRule ^(.*) http://a.domain.com/$1 [L,R=301] 

Это должно быть ограниченно надлежащим образом, поместив его в файл .htaccess в соответствующем каталоге или в элементе конфигурации сайта.

IIS (в зависимости от версии) также поддерживает модуль перезаписи. Для IIS 6 вы можете посмотреть IIRF, который имеет синтаксис, похожий на mod_rewrite. Для IIS 7 взгляните на URL Rewrite Module, который имеет простой графический интерфейс, который импортирует правила mod_rewrite.

+0

То, что я точно хочу сделать, это определить, что запрос поступает с мобильного или из обычного браузера, поэтому необходимо проверить HTTP_USER_AGENT. Я проверил rewriteCond сделает это для меня в Apache. IIS мне нужно проверить. В любом случае спасибо за помощь. –

+0

Да, я понимаю, что вы имеете в виду; как вы сказали,% {HTTP_HOST} можно легко заменить на% {HTTP_USER_AGENT}, а RegEx может быть изменен в соответствии со строкой определенного пользовательского агента. – joshperry

Смежные вопросы