Question

J'utilise IIS 7.5 sur Windows 7 RC. J'utilise l'URL IIS Module Rewrite pour réécrire les URLs.

Tout semble fonctionner très bien, jusqu'à ce que je joue un postback en cliquant sur un bouton. Il ajoute ensuite les querystring params à mon URL réécrite, comme ceci:

Réécriture URL, tel qu'il apparaît dans le navigateur: http: // localhost / fr / produit / 1239 / Gary Fisher + + Hkek + Montagne + vélo

Sans réécriture d'URL est l'URL:

http: //localhost/product.aspx? lang = fr & id = 1239 & title = Gary Fisher + + + Hkek Montagne + vélo

Lorsque je clique sur un bouton pour effectuer une publication, l'URL change à ceci:

Quelqu'un d'autre d'avoir ces problèmes?

MISE À JOUR: Réécrire les règles de 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>
Était-ce utile?

La solution

Ajoutez l'appendQueryString = attribut « false » à l'élément d'action de la règle de réécriture ainsi.

Hope this helps.

Autres conseils

J'ai pu résoudre le problème en ajoutant

Form.Action = Request.RawUrl;

à l'événement Page_Load. J'ai pu quitter appendQueryString = « true » et jusqu'à présent, il fonctionne correctement.

Ceci est une caractéristique de sécurité de l'IIS Module de réécriture.

Personnellement, je préfère ISAPI Rewrite comme il est beaucoup mieux, plus simple d'écrire des règles, et a plus de fonctionnalités.

ont également trouvé sous modérée à forte charge (plus de 100 connexions à un site Web) que les cours IIS Rewrite Module du pool d'applications de tomber en panne et se reproduire et de nouveaux processus.

scroll top