301 переадресация с предыдущего asp verion - PullRequest
0 голосов
/ 02 июля 2010

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

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

Привет

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

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

С

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

до

www.example.com / search_results.aspx? Раздел = Куклы & название = Hat

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

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

1 Ответ

0 голосов
/ 02 июля 2010

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> или любой другой.

...