La reescritura de URL hace todos los enlaces de los mismos patrones después de visitar cualquier enlace reescrito en ASP.NET

StackOverflow https://stackoverflow.com/questions/5841671

Pregunta

estoy usando UrlRewriter Para reescribir mis URL en una aplicación ASP.NET. Todo funciona bien y el trabajo que necesito hacer es funcionar bien.

Quiero redirigir ~/product/45/something a ~/show_product_details.aspx?current_prod=45

Y está funcionando bien. Pero el problema es cuando solicito ~/product/45/something, Estoy obteniendo la página de ~/show_product_details.aspx?current_prod=45. Después de eso, cuando hago clic en algún enlace como ~/home.aspx, nuevamente me redirige a ~/product/45/home.aspx.

Sugiera cómo solucionar esto. Estoy usando esta regla:

          <add name="Gallery1" virtualUrl="^~/product/(.*)/(.*)" 
                 rewriteUrlParameter="ExcludeFromClientQueryString"
                destinationUrl="~/show_product_details.aspx?current_prod=$1"
         ignoreCase="true" />   
¿Fue útil?

Solución

Parece que las URL en su aplicación ASP.NET no se resuelven en la raíz de la aplicación, sino que son enlaces relativos, lo que hace que la estructura de la carpeta se tenga en cuenta.

Si está utilizando los formularios web ASP.NET, debe asegurarse de llamar a ResolveUrl ("~/home.aspx") al emitir la URL o asegurarse de que el Hyperlink sea runat = servidor, por ejemplo:

<a runat="server" href="~/home.aspx">Home</a>

O:

<a href='<%# ResolveUrl("~/home.aspx") %>'>Home</a>

Otra forma en que puede resolver esto es tener una referencia base en su HTML, que le dice al navegador que todos los enlaces en la página deben estar enraizados en la ruta especificada:

En el <head> sección:<base href='http://www.yourwebsite.com/' />

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top