iis url-rewriting iis-7.5 trailing-slash

¿Por qué IIS 7.5 agrega una barra diagonal al final en las carpetas? ¿Podemos deshabilitar el redireccionamiento de cortesía para una regla de Reescritura de URL que elimine la barra diagonal final?



url-rewriting iis-7.5 (1)

Tengo una respuesta para el caso específico de una aplicación IIS secundaria aquí: https://stackoverflow.com/a/25817317/292060 . La aplicación infantil parece ser el culpable habitual, pero no se describe explícitamente en esta pregunta.

Para intentar responder a las preguntas, estas son mis opiniones sobre cómo tratar con IIS y Microsoft durante años. No tengo fuentes difíciles de citar; algo de esto es solo de instintos.

  1. ¿Por qué? ¿Sigue siendo relevante la intención?

Creo que se derivó de la característica original de "documento predeterminado", a saber index.html. Los sitios web querían que su página de inicio fuera solo el dominio, luego se extendía a las subcarpetas. Con la reescritura de url, la intención ya no es relevante: puede volver a escribir con el contenido de su corazón y preferiría que IIS se salga del camino. Es común querer urls amigables y no una barra inclinada (excepto la raíz del dominio / sitio web, que se requiere para tener una barra inclinada, incluso si algunos navegadores como Chrome se vuelven lindos y lo ocultan).

  1. ¿Alguna implicación de seguridad?

Creo que la única implicación de seguridad fue la navegación por el directorio original. Si olvidó hacer un documento predeterminado y la navegación del directorio se dejó activada, entonces la gente podría explorar los archivos de su sitio web. Por lo que sé, la navegación de directorios ha estado deshabilitada durante mucho tiempo como la configuración predeterminada.

Con cualquier solicitud, ya sea una barra inclinada o no, reescritura de URL o no, su servidor y el código deben soportar las solicitudes incorrectas. Esto es cierto para todas las situaciones, no solo específicas de las barras. http://xkcd.com/327/

  1. ¿Cómo puedo desactivarlo para que esto funcione con una regla de Reescritura de URL "RemoveTrailingSlashRule"

Tengo una respuesta si el problema es la aplicación secundaria, aquí: https://stackoverflow.com/a/25817317/292060 El resumen es, en IIS:

  • Deshabilite la característica de documento predeterminado para la aplicación secundaria.
  • Usando Url Rewrite, cree una regla para reescribir (no redirigir) una solicitud vacía a default.aspx

Si esta pregunta es para un problema más general, incluidas las subcarpetas regulares, incluso si no es una aplicación secundaria, considere la posibilidad de eliminar "No es un directorio" de la regla, y deje que esto redirija incluso cuando vea un directorio. Eso puede funcionar, o puede crear un bucle de redirección infinito, no estoy seguro.

IIS realiza la limpieza de URL en los directorios agregando una barra diagonal. Vea estos documentos antiguos de IIS 6: IIS genera un redireccionamiento de cortesía cuando se solicita una carpeta sin barra diagonal.

  1. ¿Por qué? ¿Sigue siendo relevante la intención?
  2. ¿Alguna implicación de seguridad?
  3. ¿Cómo puedo desactivarlo para que esto funcione con una regla de Reescritura de URL "RemoveTrailingSlashRule"

Cuando agrega una regla en IIS 7.5 con URL Rewrite 2, la regla no se aplicará a los directorios (con IsDirectory) y a las carpetas (con IsFolder).

Vea esta advertencia en Agregar una regla para agregar o eliminar el símbolo de barra diagonal:

Esto creará el RemoveTrailingSlashRule1: