2009-05-07 8 views
0

Ich benutze die Intelligenz UrlRewriter für ein Projekt.Intelligenz.UrlRewriter

Es funktioniert gut, URLs in den Browser neu geschrieben.

Zum Beispiel, wenn ich eingeben

http://localhost/People 

Dies wird korrekt neu geschrieben als:

http://localhost/People.aspx 

Nun, das Problem ist, wenn ich in dem Code bin hinter ich die freundlichen zugreifen muß URL, aber Request.ServerVariables scheint nur die unfreundliche URL verfügbar zu haben.

Weiß jemand, ob es überhaupt gibt, kann ich auf diese ursprüngliche, freundliche Url im Code zurückgreifen? Oder bin ich zu spät?

Antwort

2

Got Jungs.

@Nick Allen und Pure.Krome: Danke für die Hilfe !!

fand ich das Stück von Daten in:

HttpContext.Current.Request.RawUrl 

Wenn es in Servervariables existiert, konnte ich es nicht sehen, aber abschließend, sind die Daten dort so werde ich mich nicht weinen müssen zu Schlaf :)

Okay. Danke noch einmal!!

+0

gut gemacht. Ich habe diesen Post nicht gesehen und hatte ein Debug-Play mit meinem Code und habe das auch gefunden. heh :) gut gemacht! Du kannst deine eigene Antwort in ein paar Tagen ankreuzen. –

+0

Danke dafür, ich war auf der Suche nach einem Weg (oder Dokumentation), um die freundliche URL zu bekommen, um die asp-Formular-Aktion außer Kraft zu setzen - jetzt kann ich! : D Nochmals vielen Dank. –

0

Ich benutze es und bin für .. äh .. 2 Jahre jetzt denke ich. (Dank gawd IIS7 und MVC sind hier!)

sowieso, kann u den IIS Server Variables für alle diese überprüfen und uns sagen, was Sie bekommen ...

  1. PATH_INFO
  2. URL
  3. SCRIPT_NAME

zB (dies ist ein Ausschnitt aus der PATH_INFO für eine Seite i eingerichtet haben, die die Anfrage Variablen ALL-Dumps): -

PATH_INFO: [/admin/Miscellaneous.aspx]

und es zu bekommen ..

Request.ServerVariables["PATH_INFO"] 

Informieren Sie uns.

+0

@PureKrome zu default.aspx?myvar oder default.aspx/myvar umschreiben: Hey! Prost auf die schnelle Antwort! Request.ServerVariables ["PATH_INFO"] gibt leider /people.aspx zurück, und ich suche nach/People /. Aber es klingt wie du denkst, was ich dachte. Also habe ich während des Debuggens alle Servervariablen im direkten Fenster ausgegeben. Dann habe ich die Ausgabe nach dem Wort "people" durchsucht, aber jeder Hinweis auf people.aspx ... ließ mich denken, dass die freundliche URL über Servervariablen nicht erreichbar ist. Natürlich würde ich gerne falsch bewiesen werden! Irgendwelche anderen Ideen? –

0

Die Regeln für das Umschreiben von Intelligencia sind in der web.config gespeichert, die parsbar ist. So könnte man die Regeln in der web.config durchquert eine Übereinstimmung zu finden und verwenden Sie den angepassten Wert von dort

Offensichtlich wäre dies nicht für Mustererkennung arbeiten, nur explizite Regeln wie das in Ihrem Beispiel

+0

schwer, aber machbar, wenn Sie wirklich auch haben. gute Idee. –

+0

@Nick: Danke für die Idee Kumpel. Leider verwende ich Muster in meinen Spielen, also könnte es schwierig sein. Was ich wirklich gerne hätte, wäre nur eine Möglichkeit, von einem .net-Objekt zur ursprünglichen URL zu gelangen ... hmmmm ... Ich bin mir nicht einmal sicher, ob das möglich ist. Als ich versuche, im Code dazu zu kommen, vermute ich, dass die Information, die ich suche, im Äther verloren gegangen ist ... –

1
Request.PathInfo 
Request.QueryString 

Welche Sie hängt davon ab, wenn Sie