Frage

Ich bin mit IIS 7.5 auf Windows 7 RC. Ich verwende den IIS URL Rewrite-Modul URLs neu zu schreiben.

Alles scheint gut zu funktionieren, bis ich durch Klicken auf eine Schaltfläche, um eine Postbacks durchzuführen. Es hängt dann die Abfragezeichenfolgeflag params meiner neu geschrieben URL, wie folgt aus:

Rewritten URL, wie sie im Browser angezeigt wird: http: // localhost / en / product / 1239 / Gary Fisher + + Hkek + Berg + Bike

Ohne URL die URL-Rewriting ist:

http: //localhost/product.aspx? lang = en & id = 1239 & title = Gary + Fisher + Hkek + Berg + Bike

Wenn ich eine Schaltfläche klicken, um eine Postbacks, die URL Änderungen dies auszuführen:

Ist jemand diese Probleme?

UPDATE: Regeln für das Umschreiben von Web.Config

<rule name="RedirectProductPageUrls" stopProcessing="true">
    <match url="^product\.aspx$" />
    <conditions logicalGrouping="MatchAll">
        <add input="{REQUEST_METHOD}" negate="true" pattern="^POST$" />
        <add input="{QUERY_STRING}" pattern="^lang=([^=&amp;]+)&amp;id=([^=&amp;]+)&amp;title=([^=&amp;]+)$" />
    </conditions>
    <action type="Redirect" url="{C:1}/products/{C:2}/{C:3}" appendQueryString="false" redirectType="Permanent" />
</rule>
<rule name="RewriteProductPageUrls" stopProcessing="true">
    <match url="^([^/]+)/product/([^/]+)/([^/]+)/?$" />
    <conditions logicalGrouping="MatchAll">
        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
    </conditions>
    <action type="Rewrite" url="product.aspx?lang={R:1}&amp;id={R:2}&amp;title={R:3}" />
</rule>
War es hilfreich?

Lösung

Fügen Sie den appendQueryString = „false“ -Attribut auf das Aktionselement der Rewrite-Regel auch.

Hope, das hilft.

Andere Tipps

Ich war in der Lage, das Problem zu lösen, indem das Hinzufügen

Form.Action = Request.RawUrl;

zu dem Ereignis Page Load. Ich konnte appendQueryString = „TRUE“ verlassen und so weit es funktioniert einwandfrei.

Dies ist ein Sicherheitsmerkmal des IIS-Rewrite-Modul.

Ich persönlich ISAPI Rewrite bevorzugen, da es viel besser ist, einfachere Regeln zu schreiben, und verfügt über mehr Features.

Haben auch unter moderater bis hoher Last (über 100 Verbindungen zu einer Website) festgestellt, dass der IIS-Rewrite-Modul Kurse den Anwendungspool zum Absturz bringen und laichen und neue Verfahren.

scroll top