Reescritura de URL en ASP.NET convirtiendo http://example.com/abcd en http://example.com/page.aspx?id=abcd

Tengo un problema en mi aplicación ASP.NET de formularios web donde me gustaría reescribir una URL desde

http://example.com/abcd

dentro

http://example.com/page.aspx?id=abcd

  • el ABCD la parte será única y no puedo crear una carpeta para ella
  • Quiero que los usuarios vean siempre el http://example.com/abcd url
  • ¿La solución sería la misma en Windows Azure?

¿Puede alguien por favor ayudarme con algunos consejos?

¡Gracias!

preguntado el 27 de julio de 12 a las 22:07

1 Respuestas

En tu web.config, en la sección system.webServer pon algo como esto:

<!-- This has been added to support url rewriting for ... -->
<rewrite>
  <rules>
    <rule name="RedirectUserFriendlyURL1" stopProcessing="true">
      <match url="^Page\.aspx$" />
      <conditions>
        <add input="{REQUEST_METHOD}" pattern="^POST$" negate="true" />
        <add input="{QUERY_STRING}" pattern="^id=([a-zA-Z]+)$" />
      </conditions>
      <action type="Redirect" url="{C:1}" appendQueryString="false" />
    </rule>
    <rule name="RewriteUserFriendlyURL1" stopProcessing="true">
      <match url="^([a-zA-Z]+)$" />
      <conditions>
        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
      </conditions>
      <action type="Rewrite" url="Page.aspx?id={R:1}" />
    </rule>
  </rules>
</rewrite>

Tenga en cuenta que he copiado de la configuración que tenemos en un sitio de producción y modificado un poco... necesita pruebas.

La configuración debería funcionar cuando solo tiene palabras ([a-zA-Z]+), cambie el patrón para que funcione con números.

Espero eso ayude

Respondido 27 Jul 12, 22:07

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.