estoy usando IIS 7.5 en Windows 7 RC. Uso el módulo de reescritura de Url de IIS para reescribir las URL.IIS 7.5 con el módulo de reescritura de URL de dobles de cadena de consulta Parámetros de devolución de datos
Todo parece funcionar bien, hasta que me realizo una devolución de datos haciendo clic en un botón. A continuación, añade los parametros de cadena de consulta a mi URL reescrito, así:
URL reescrita, tal como aparece en el navegador: http://localhost/en/product/1239/Gary+Fisher+Hkek+Mountain+Bike
Sin reescritura de URL la URL es:
http://localhost/product.aspx?lang=en&id=1239&title=Gary+Fisher+Hkek+Mountain+Bike
Cuando hago clic en un botón para realizar una devolución de datos, la URL cambia a esto:
Y cuando se vuelve a escribir la URL, todos los parametros cadena de consulta se duplican - así que cuando quiero conseguir el idioma actual al hacer esto:
Request.QueryString["lang"]
El valor que se obtiene es "es, en".
¿Hay alguien más que tenga esos problemas?
ACTUALIZACIÓN: las reglas de reescritura 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=([^=&]+)&id=([^=&]+)&title=([^=&]+)$" />
</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}&id={R:2}&title={R:3}" />
</rule>
¿Puedes publicar tu regla de reescritura? Justo después de lo que sea que en el web.config: ... –
Actualizado con una regla de reescritura, y una regla de redirección de las páginas de productos. – MartinHN