write reescritura instalar dirección direccion amigables activar iis-7 url-rewriting iis-7.5

iis-7 - reescritura - url amigables iis



Reescritura de URL de IIS 7.5: reescribe una carpeta desde una URL (1)

Uso IIS 7.5 y URL Rewrite.

Tengo un sitio web con jerarquía de archivos de esta manera:

webroot webroot/LegacySite

tanto webroot como legacy son carpetas de aplicaciones separadas en IIS.

Necesito reescribir mis URL así que:

Debajo de mi Web.Conf presente en la carpeta webroot, por el momento no funciona correctamente, ¿podría indicarme qué es lo que me falta?

<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <rewrite> <rules> <rule name="MyRole" stopProcessing="true"> <match url=".*" /> <conditions> <add input="{HTTP_HOST}" pattern="^mysite.com" /> <add input="{PATH_INFO}" pattern="^/LegacySite/" negate="true" /> </conditions> <action type="Rewrite" url="/LegacySite/{R:0}" /> </rule> </rules> </rewrite> </system.webServer> </configuration>


Lo siguiente debería funcionar:

<rule name="MyRole" stopProcessing="true"> <match url="LegacySite/(.*)" /> <conditions> <add input="{HTTP_HOST}" pattern="^mysite.com$" /> </conditions> <action type="Rewrite" url="/{R:1}" appendQueryString="true" /> </rule>

Es posible que desee descartar el condicional para verificar el nombre de host. ¿Es eso realmente importante? ¿Tiene algún otro nombre de dominio vinculado a ese sitio web para el que no desea que se produzca la redirección? Parece innecesario Probablemente solo necesites:

<rule name="MyRole" stopProcessing="true"> <match url="LegacySite/(.*)" /> <action type="Rewrite" url="/{R:1}" appendQueryString="true" /> </rule>

He agregado appendQueryString="true" para pasar cualquier parámetro de cadena de consulta (opcional) a la URL reescrita.