2010-11-27 13 views
0

ich URL bin mit mit meiner APS.NET Anwendung Umschreiben und haben nicht viel Glück stimmen mit den folgenden regulären Ausdrücken hatte ...Hilfe mit diesem (einfachen) regulären Ausdruck ...?

<rewrite url="~/deals/(.+)$" to="~/Deals.aspx?deal_string=$1" /> 
<rewrite url="~/deals/(.+?)/edit$" to="~/EditDeals.aspx?deal_string=$1" /> 

ich zum Betrachten eines ‚Deal‘ eine eigene Seite zu wollen Bearbeiten eines "Deals". Ich möchte, dass die URL einfach "/ bearbeiten" zu einem Angebot hinzufügt, um zur Seite Angebot bearbeiten zu gelangen.

Derzeit wird der gesamte Datenverkehr auf die erste Seite geleitet.

Antwort

1

Das Problem ist, dass jede URL, die der zweiten übereinstimmt, auch mit der ersten übereinstimmt (mit einem anderen $ 1-Capture). Vielleicht, wenn Sie die Reihenfolge der Deklarationen invertieren, wird es funktionieren. Wenn das zweite und spezifischste zuerst ausgewertet wird, sollte es den Job machen.

Sie könnten auch Ihre Ausdrücke umschreiben, indem Sie Schrägstrich-Zeichen in Ihrer Aufnahme vermeiden.

<rewrite url="~/deals/([ˆ/]+)$" to="~/Deals.aspx?deal_string=$1" /> 
<rewrite url="~/deals/(.+?)/edit$" to="~/EditDeals.aspx?deal_string=$1" /> 

Die charset [/] jede char bedeutet aber /. Die Art und Weise, wie der erste Ausdruck nicht mehr mit /deals/hallo/edit übereinstimmt.

+0

Danke! Das hat den Trick gemacht! – Sambo