He seguido las instrucciones Aprender la página web de IIS para añadir estática redirecciones con una reescritura mapa para mi asp.net aplicación.

La siguiente es la configuración:

<rule name="Redirect rule1 for Information" stopProcessing="true">
    <match url=".*" />
    <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
        <add input="{Information:{REQUEST_URI}}" pattern="(.+)" />
    </conditions>
    <action type="Rewrite" url="{C:1}" appendQueryString="true" />
</rule>

Y

<rewriteMaps>
    <rewriteMap name="Information">
        <add key="/Information/CorporateSales.aspx"
             value="/KB/Information/CorporateSales" />
        <add key="/Information/ComputerRepair.aspx"
             value="/KB/Information/ComputerRepair" />
    </rewriteMap>
</rewriteMaps>

Esto incluso fue originalmente creado por el asistente en el IIS del administrador para el uso de la reescritura de los mapas.

Así que la idea es que /Information/CorporateSales.aspx –> /KB/Information/CorporateSales con una redirección 301 (redirección PERMANENTE).

Sin embargo, yo estoy haciendo el original de la página aspx (Que estamos extracción posterior) de carga. Incluso he eliminado el archivo caso fue el uso de un recurso existente, y con el que acabo de llegar de una llanura 404 sin la redirección.

Alguien tiene una idea?

Déjenme aclarar algo:

Rewrite module obras, instalado y funcionando. Mi estándar de regex reglas funcionan muy bien. Pero mi reescribir mapa no.

OriginalEl autor Aren | 2010-11-12

5 Comentarios

  1. 6

    Este artículo http://www.iis.net/learn/extensions/url-rewrite-module/using-rewrite-maps-in-url-rewrite-module y el código a continuación trabajó para mí.

    <rewrite>
        <rules>
            <rule name="Redirect rule1 for RedirectURLs">
                <match url=".*" />
                <conditions>
                    <add input="{RedirectURLs:{REQUEST_URI}}" pattern="(.+)" />
                </conditions>
                <action type="Redirect" url="{C:1}" appendQueryString="false" />
            </rule>
        </rules>
        <rewriteMaps>
            <rewriteMap name="RedirectURLs">
                <add key="/privacy.php" value="/privacy" />
            </rewriteMap>
        </rewriteMaps>
    </rewrite>

    OriginalEl autor Jason Spence

  2. 2

    Yo estaba teniendo un problema similar y encontré esta pregunta. Me tomó un poco de tiempo, pero yo era capaz de averiguar cuál era el problema.

    Mi rewriteMap contenido de la url «/Default2.aspx» y «/Panel de control.aspx».

    Cuando yo iba a Default2.aspx, me gustaría obtener un 404 en lugar de conseguir redirigido a Panel de control.aspx como se esperaba.

    El problema que encontré fue que en mi máquina, la aplicación se ejecuta en un subdirectorio. El rewriteMap caminos sólo funcionaría si he utilizado la ruta de acceso completa (incluyendo la carpeta de la aplicación), por ejemplo, «/servidor de pruebas/Default2.aspx».

    Por lo que podría haber añadido entradas duplicadas en mi rewriteMap para dar cuenta de los directorios de la aplicación en equipos de desarrollador, pero que parecía complicado. Miré a las otras reglas de reescritura en la aplicación que no tienen este problema y me di cuenta de que estaban usando la {REQUEST_FILENAME} variable, en vez de {REQUEST_URI}. Así que me cambié la regla a utilizar {REQUEST_FILENAME} y quitar la primera barra de la url en mi rewriteMap.

    OriginalEl autor sectrean

  3. 0

    ¿Tiene la reescritura de Url instalado como parte de IIS7/7.5? Este no se instala por defecto. También, asegúrese de que su grupo de aplicación es el conjunto integrado de pipline modo, no el clásico.

    Editar

    De esto:

    http://learn.iis.net/page.aspx/469/using-rewrite-maps-in-url-rewrite-module/

    Esta única cosa que veo que está haciendo es añadir el ‘stopProcessing’ atributo. Has probado a quitar eso?

    Es instalado e Integrado

    OriginalEl autor ScottE

  4. 0

    Anteriormente tuve el mismo problema como usted la describe.

    Podría actualizar el código para

    <match url="(.*)" />

    y espero consciente,

     <add input="{Information:{REQUEST_URI}}" pattern="(.+)" />

    esta condición captura de URL completa, excepto el dominio.
    por ejemplo en esta url:
    www.example.com/Information/CorporateSales.aspx
    se comprobará la coincidencia de la condición de
    Information/CorporateSales.aspx en rewriteMap

    y para asegurarse de que no se coincida con esta dirección de

    www.example.com/old/Information/CorporateSales.aspx

    OriginalEl autor Wigid

  5. -5

    Hice un restablecimiento de la aplicación de la piscina y el sitio de iis ?

    En algunos casos puede tardar hasta 72 horas (iirc) para propagar en todo el mundo.

    Este es un local dev máquina, y he restablecer no sólo la aplicación de la piscina, pero todo iis así.

    OriginalEl autor BentOnCoding

Dejar respuesta

Please enter your comment!
Please enter your name here