2012-01-12 4 views
0

Если вы видите сайт yahoo, когда вы входите на сайт www.yahoo.com, сервер yahoo получает ваш IP-адрес и перенаправляет вас в определенный домен (yahoo.ca, yahoo.us, ... .)Обращайтесь с httpmodule в iis

Теперь я хочу сделать это, а не для специального сайта, я хочу получить любой запрос на отправку в iis (www.1.com, www.2.com, www.3.com) и с помощью алгоритм, перенаправлять пользователя на новый сайт, например:

Request: www.1.com GO To -> www.yahoo.com 
Request: www.2.com GO To -> www.google.com 
.... 

Я хочу, чтобы справиться с IIS, ни сайт каждого WebConfig в.

Может кто-нибудь мне помочь?

ответ

2

реализация IHttpModule вы можете сделать это, я сделал подобное (не точно), следуя это руководство:

http://www.stardeveloper.com/articles/http-module-to-redirect-requests-from-root-domain-to-www-subdomain/

и с помощью этого page вы можете найти исходную страну запроса

другое решение в этом page

+0

Спасибо Jadarnel, это мой первый вопрос. – bahman

+0

Но эта ссылка полезна, когда вы хотите impelement для одного веб-сайта, но я хочу сделать это для всех веб-сайтов, находящихся на суровом уровне. Мне нужно обработать http-модуль на уровне iis, без приложения. – bahman

+0

Я не совсем уверен, как это сделать, но используя приведенное выше руководство, вы можете добавить модуль как отдельную dll для каждого веб-приложения, где бы они ни находились, например, вам нужно опубликовать свой сайт на этих серверах, не ты? – Afshin

1

в дополнение к ответу Afshin в сравнении обнаружения географического местоположения пользователя also look at this.

К сожалению, HTTP-модуль работает только на уровне веб-сайта; чтобы сделать то, что вам нужно, вам нужно посмотреть на ISAPI_Filters.

Для получения дополнительной информации см. http://msdn.microsoft.com/en-us/library/ms972974.aspx.

Мы закончили покупку продукта, связанного с этой страницы; ISAPI Rewrite

+0

честность, установка ISAPI проще, чем httpmodule? зная, что вам нужно установить веб-приложение, хотя ... – Afshin

+1

С ISAPI-фильтром проще управлять, так как он является сервером. Однако вы могли бы сделать это с помощью отдельных приложений ASP.Net, но вы увеличивали нагрузку на каждое дополнительное приложение, должны были бы управлять модулем в каждом приложении и также должны были бы делать это в каждом субдомене, который вы создали. – dash

+0

определенно хорошая причина, извлеченный урок. – Afshin