2011-12-08 18 views
5

Deseo canonicalizar un nombre de dominio, de bar.example.com a www.example.com (bueno, cualquier cosa que no sea www.example.com). El sitio ejecuta IIS7.Reescritura de Urls IIS7 - ¿Puedo usar stopProcessing = "false" con una regla de redireccionamiento?

El problema es que ciertas URLs eran de la forma http://bar.example.com/asp/oldpage.asp?query=awesome, y tienen reglas específicas de reescritura de URL ya en el lugar que redireccionan a http://www.example.com/newpage/awesome

Quiero escribir una regla que las capturas de las otras reglas.

aquí está el truco: tengo mucho de reglas, y quiere poner esta regla en la raíz del sitio, pero tienen reescritura adicional/redirigir las reglas en las subcarpetas, así que quiero aplazar el 301 de sucediendo hasta que se hayan ejecutado todas las reglas.

¿Esto es posible? Las reescrituras tienen una opción para aplazar (stopProcessing = "false") pero esto no parece ser una opción para los redireccionamientos.

¿Estoy SOL aquí?

Respuesta

6

Desafortunadamente, puedo confirmar que el procesamiento diferido (stopProcessing="false") funciona solo con acciones de reescritura y es ignorado por los redireccionamientos.

En caso de que el número de coincidencias haya sido pequeño, pero no lo es, de acuerdo con su pregunta, le habría sugerido que las combine usando una alternancia de expresiones regulares. Por ejemplo:

First match: ^first/a$ 
Second match: ^second/b$ 

Combined match: ^(first/a|second/b)$ 

que lleva a algo como:

<rule name="MyCombinedRule"> 
    <match url="^(first/a|second/b)$" /> 
    <action type="Redirect" url="http://www.example.com/third/c" /> 
</rule> 
+0

Como una nota adicional, subcarpetas * puede * borrar las reglas desde el directorio padre, pero eso significa que tengo que copiar la regla cada subdirectorio – Broam

Cuestiones relacionadas