2010-09-22 19 views
27

Estoy usando el módulo UrlRewrite de IIS7. Configuré mis reglas en la sección web.config <system.webServer><rewrite>. Quiero saber si hay una manera de definir las reglas en un archivo xml externo en lugar de en el archivo web.config. Gracias.Módulo urlrewrite IIS7 - Reglas en el archivo xml externo

+0

No que yo sepa. ¿Por qué necesitarías esto? – Remy

+3

@ Remy: respuesta tardía, pero aumenta la legibilidad de la web.config cuando tiene muchas reglas de reescritura. Esa es la razón para mí de todos modos. – magnattic

+0

en IIS> = 7.5 recuerde instalar el componente URL Rewrite desde aquí https://www.iis.net/downloads/microsoft/url-rewrite –

Respuesta

1

Se pueden utilizar los proveedores de reescritura de URL de ejemplo que incluyen una para almacenar aquellos en un archivo separado, ver: http://www.iis.net/learn/extensions/url-rewrite-module/using-custom-rewrite-providers-with-url-rewrite-module

+0

pero eso es para mapeos. La configuración se usa para otro fin, para establecer reglas personalizadas. a veces necesitamos usar una expresión de reg para todas las asignaciones de url que necesitamos, entonces la única forma es incluirlo en config. –

50

sí, se puede utilizar el atributo configSource para que apunte a un archivo externo como se hace con otros secciones web.config. En el web.config:

<rewrite> 
    <rules configSource="Rewrite.config" /> 
</rewrite> 

y en el archivo de configuración de reglas:

<rules> 
    <rule name="some rule"> 
     <!-- rule details here ---> 
    </rule> 
</rules> 

todavía puede incluso utilizar el Administrador de IIS para modificar las reglas y sólo va a trabajar. Una advertencia menor con este enfoque: cuando haces un cambio y guardas un archivo externo como este, no se reciclará la aplicación, como hacer un cambio en la web.config lo hará. Por lo tanto, si está editando una regla y desea ver que surta efecto, debe presionar manualmente el archivo web.config haciendo una edición y guardándolo.

Otra referencia: Moving IIS7 url rewrite section out of the web.config file

+0

¿Estás seguro de que la aplicación no se recicla en los cambios externos? Hay otra propiedad en las secciones de configuración llamada [RestartOnExternalChanges] (http://msdn.microsoft.com/en-us/library/system.configuration.sectioninformation.restartonexternalchanges.aspx) y su valor predeterminado es true. – magnattic

+0

@atticae Creo que RestartOnExternalChanges se aplica solo a los elementos

definidos a medida, que las reglas de reescritura no lo son. http://forums.iis.net/t/1155629.aspx No estoy seguro de si algo ha cambiado desde entonces, este hilo es de 2009 ... –

+0

Desafortunadamente, el IntelliSense en Rewrite.config no funciona. ¿Hay alguna forma de resolver este problema? –

Cuestiones relacionadas