Finns det något verktyg som kan ändra dynamiska URL:er på befintliga applikationer. antar att du menar att om man anger url www.xxx.se/prylar Nja, man behöver inte krångla till med 404:or för att göra sådant här, ett isapi-plugin eller asp.net-kod fixar det. Problemet är att ändra utgående url:er. Jag löste det med en egen isapi-plugin. Man kan i asp.net göra så att man "hakar tag" i alla förfrågningar mot asp.net, sedan finns det en intressant egenskap på Response-klassen (man får leta rätt på den aktuella instansen första bara) som heter Filter. Det är en vanlig System.IO.Stream. Man skriver då helt enkelt en egen Stream-klass som "läser" från en annan Stream. Det gamla värdet på Filter stoppar man in i en instans av sin Stream-klass, och sätter sedan Filter-egenskapen till sin instans.URL Rewrite
Exempel:
En applikation genererar url:er av typen "www.xxx.se/main.aspx?category=1234"
Jag skulle vilja att denna konverterades till "www.xxx.se/prylar"
Jag har provat en applikation som heter LinkFreeze (http://www.helicontech.com/linkfreeze/) vilken fungerar men den kan bara ändra på skiljetecknen.
Provade också http://urlrewriter.net/ men den verkar bara konvertera inkommande requests (jag behöver också ändra i de genererade sidorna men jag har inte tillgång till källkoden).Sv: URL Rewrite
skall istället www.xxx.se/main.aspx?category=1234 köras?
Då får sätta upp en 404-sida som använder url (och inte file).
Så kan du få fram den sidan som efterfrågades mha request.servervariables("QUERY_STRING").
sen kan du göra kommando eller motsvarande som göra en server.transfer eller funktion som exekuterar en fil eller rader som behövs.Sv:URL Rewrite
För inkommande (dvs. anrop) så kan du skriva t.ex. en egen httpmodule som ändrar url:erna. För utgående kan du skriva ett filter som du lägger till i alla response-objekt. Löses med asp.net. Kod borde gå att hitta på google.Sv: URL Rewrite
Skulle dock vara intressant att veta andra lösningar för utgående. Vad menar du med att lägga till ett filter i alla response-objekt?Sv:URL Rewrite
I sin stream-klass göra man sedan så att man gör om all trafik (man får väl sortera bort binära saker..) till text, sedan kollar man ifall url:er som måste ändras finns inte. Om så är fallet så ändrar man, och gör om till binärt igen och skickar det istället. Om inte så skickar man bara ut det som kom in.
Nackdelen med det här är att det drar lite extra prestanda då all text måste omvandlas en massa..