Как написать приложение перенаправления в asp.net? - PullRequest
0 голосов
/ 06 августа 2010

Мне нужно переместить все запросы из одного домена в другой. Я хочу изменить часть URL, например, subdomain.olddomain / url-> subdomain.newdomain / url.

Я был уверен, что это просто, и написал запрос Application_Begin как:

void Application_BeginRequest(object sender, EventArgs e)
    {
        string url = Request.Url.ToString().ToLower();
        string from = ConfigurationSettings.AppSettings["from"];
        if (url.IndexOf(from) >= 0)
        {
            url = url.Replace(from, ConfigurationSettings.AppSettings["to"]);
            Response.Redirect(url);
        }
        else
        {
            if (url.IndexOf("error.aspx") < 0)
            {
                Response.Redirect("Error.aspx?url=" + Server.UrlEncode(url));
            }
        }
    }

Пока я забываю, что BeginRequest запускался только тогда, когда файл физически существует.

Есть идеи, как я могу сделать такое перенаправление в asp.net без создания сотен старых страниц?

Ответы [ 4 ]

1 голос
/ 06 августа 2010

Не уверен на 100%, но я думаю, что если вы снимите отметку с опции Check that file exists в IIS, она должна работать.Как это сделать, зависит от версии IIS.

0 голосов
/ 06 августа 2010

Я бы порекомендовал использовать такой инструмент, как ISAPIRewrite [http://www.isapirewrite.com/], чтобы управлять этим для IIS 6, или встроенную перезапись URL для IIS7.

Нет причин изобретать велосипед ...

0 голосов
/ 06 августа 2010

Я бы порекомендовал сделать это на уровне DNS.Я бы перенаправил с постоянным перенаправлением 301, чтобы гарантировать, что ваш рейтинг в поисковых системах не влияет.

0 голосов
/ 06 августа 2010

Полагаю, вы можете указать ASPX для запуска на 404 ошибках.Эта страница может выполнять перенаправление.

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