301 редирект с предыдущей версии asp

Я нашел это. http://geekswithblogs.net/shahed/archive/2007/10/23/116278.aspx

Может кто-нибудь помочь мне организовать это в файл aspx/aspx.cs, так как я не очень хорошо знаком со всем кодом здесь.

Hi,

Я создал новый веб-сайт, используя asp.net. Предыдущая версия была собрана с использованием asp. Вот в чем проблема. Мой клиент хочет 301 постоянную переадресацию на страницах со строками запроса.

Как мне выполнить перенаправление со страницы, которой больше нет на моем сервере, например.

От

www.example.com/dolls/detail.asp?id=15

to

www.example.com/search_results.aspx?section=Dolls&title=Шляпа

Я прочитал несколько статей, но они не объясняют, как решить эту конкретную проблему.

Большое спасибо, С


person Community    schedule 02.07.2010    source источник
comment
Вы читали ответы? Кто-нибудь из них работал на вас?   -  person Jaroslav Jandek    schedule 10.07.2010


Ответы (1)


1) Апач: Redirect 301 /detail.asp?id=15 http://www.mydomain.com/search_results.aspx?section=Dolls&title=Hat

2) IIS: есть страница перенаправления.

3) Отредактировано: полный код:

using System.Web;
public class PermaRedirectHandler : IHttpHandler
{
    public PermaRedirectHandler(){}

    public void ProcessRequest(HttpContext context)
    {
        Response.Status = "301 Moved Permanently";
        Response.RedirectLocation = RedirectionClass.GetRedirectUrl(context);
    }

    public bool IsReusable { get { return false; } }
}

В веб-конфигурации вы должны сопоставить все пути, заканчивающиеся на .asp, с обработчиком:

<system.webServer>
  <handlers>
    <add verb="*" path="*.asp" name="redir" type="PermaRedirectHandler" modules="IsapiModule"/>
  ...
  </handlers>
</system.webServer>

Вам понадобится сопоставитель для старых => новых URL-адресов RedirectionClass.GetRedirectUrl. Вы можете использовать Dictionary<string, string> или что-то еще.

person Jaroslav Jandek    schedule 02.07.2010
comment
Это не то, о чем он просит. И как они собираются запускать страницы asp из компилятора aspx? - person Aristos; 02.07.2010
comment
Фактически. Поскольку он не может предложить пути, он может сделать это вручную в конфигурации сервера. Также добавлен код, который будет обрабатывать перенаправление. - person Jaroslav Jandek; 02.07.2010