ASP.Net - перенаправить любой запрос в другой домен по тому же пути - PullRequest
2 голосов
/ 17 февраля 2010

Я буду в ситуации, когда у меня будут www.DomainA.com и www.DomainB.com, у каждого из которых будут отдельные IP-адреса. Все запросы к www.DomainB.com/ndomPath}, я бы хотел перенаправить на www.DomainA.com/‹Path‹.

Моя первоначальная реакция заключалась в том, чтобы в базовом каталоге просто создать HTTPModule и Web.config для добавления в модуль, где модуль затем перенаправит запрос в DomainA. Единственная проблема в этом состоит в том, что IIS не выполняет модуль, а вместо этого определяет себя, есть ли соответствующий файл или приложение для запуска на основе запрошенного пути (т. Е. Вы либо получите ошибку о том, что запрошенный файл не существует или ошибка безопасности, связанная с невозможностью найти запрошенное приложение).

Что мне нужно изменить в IIS, чтобы всегда запускать мой модуль? Или есть более простой способ сделать это с помощью .Net 2.0 и IIS6?

Ответы [ 2 ]

4 голосов
/ 17 февраля 2010

Просто создайте простое приложение, а затем в вас Global.asax Application_BeginRequest поместите код для перенаправления - что-то вроде:

Sub Application_BeginRequest(ByVal sender As Object, ByVal e As EventArgs)
    Dim strPath As String = HttpContext.Current.Request.Url.PathAndQuery
    HttpContext.Current.Response.Clear()
    HttpContext.Current.Response.Status = "301 Moved Permanently"
    HttpContext.Current.Response.StatusCode = 301
    HttpContext.Current.Response.AddHeader("Location", "www.DomainA.com" & strPath)
End Sub

Запомните код состояния 301, чтобы радовать поисковиков, сообщая им, что это постоянное перенаправление.

2 голосов
/ 17 февраля 2010

Следуйте этим инструкциям , чтобы заставить IIS отправлять все запросы через ASP.Net.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...