Response.RedirectPermanent nicht hilfreich

Beantwortet Response.RedirectPermanent nicht hilfreich

  • Dienstag, 12. März 2013 19:36
     
     

    Hallo zusammen,

    ich habe folgende Seite schaetzung.aspx, wobei einige externe Links auf "schaetzung.aspx." verlinken. Ruft man den zuletzt genannten Link auf, führt das zu einem HTTP Error Code 404. Nun habe ich bereits versucht,

    • per Routing durch
      routes.MapPageRoute("e10_3", "schaetzung.{endung}", "~/schaetzung.aspx", false);
      bzw.
    • mittels Handler durch
      else if (url.Contains("schaetzung.aspx."))
                      HttpContext.Current.Response.RedirectPermanent("...", true);

    abzuändern. Beides brachte mich aber nicht weiter. Wie kann ich das Problem lösen (ohne die externen Verlinker anzuschreiben)?

    Danke für Tipps vorab.

    Grüße
    Ron


Alle Antworten

  • Dienstag, 12. März 2013 20:15
    Moderator
     
     Beantwortet Enthält Code

    Hallo Ronald,

    probier mal folgendes (web.config)

    <?xml version="1.0"?>
    <configuration>
      ...
      <system.web>
        ...
        <httpRuntime relaxedUrlToFileSystemMapping="true" />
        <urlMappings>
          <add url="~/schaetzung.aspx." mappedUrl="~/schaetzung.aspx"/>
        </urlMappings>
        ...
      </system.web>
    </configuration>
    



    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    • Als Antwort markiert Ronald Siegel Dienstag, 12. März 2013 22:58
    •  
  • Dienstag, 12. März 2013 22:58
     
     

    Besten Dank! Es funktioniert zwar, nun muss ich mir wegen double content Gedanken machen, aber das ist eine andere Baustelle.

    Ergänzung: Ich habe das URL-Mapping aus der web.config wieder entfernt und es nur bei dem Eintrag <httpRuntime relaxedUrlToFileSystemMapping="true" /> belassen. Den doppelten Inhalt fange ich nun über das Routing (siehe Anfangspost von mir) ab.

  • Dienstag, 12. März 2013 23:35
    Moderator
     
     

    Hallo Ronald,

    Du kannst ja problemlos auf deinen Handler weiterleiten und dieser kann dann die 301 Weiterleitung durchführen. Als mappedUrl dann bspw. "~/Handler/Redirect.ashx?Url=schaetzung.aspx." angeben.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community