redirigir redireccionar redireccionamiento iis7 cambiar iis-7 https url-rewriting url-rewrite-module

iis-7 - redireccionar - url rewrite



Reescribiendo URL de https:// a http:// en IIS7 (4)

Estoy tratando de reescribir urls desde el formulario:

https://example.com/about

a la forma

http://example.com/about

utilizando la reescritura de URL de IIS7 :

<!-- http:// to https:// rule --> <rule name="ForceHttpsBilling" stopProcessing="true"> <match url="(.*)billing/(.*)" ignoreCase="true" /> <conditions> <add input="{HTTPS}" pattern="off" ignoreCase="false" /> </conditions> <action type="Redirect" redirectType="Found" url="https://{HTTP_HOST}{REQUEST_URI}" /> </rule> <!-- https:// to http:// rule --> <rule name="ForceNonHttps" stopProcessing="true"> <match url="(.*)billing/(.*)" ignoreCase="true" negate="true" /> <conditions> <add input="{SERVER_PORT}" pattern="^443$" /> </conditions> <action type="Redirect" redirectType="Found" url="http://{HTTP_HOST}{REQUEST_URI}" /> </rule>

Estoy perdido He estado navegando por la web en busca de ejemplos y probando cada sintaxis que se me ocurre. Las reglas de reescritura que especifico simplemente no parecen funcionar para ninguna solicitud de https, como si todas las solicitudes de https:// totalmente invisibles para el motor de reescritura.

las reglas funcionan bien; ver respuesta a continuación.


Esta publicación es un poco antigua, pero quería responder. Estoy usando ASP.Net MVC3, y la respuesta anterior de Fabio no funcionó para mí. La solución más fácil que se me ocurrió para manejar el redireccionamiento de https a http, al mismo tiempo que permitía que las páginas https válidas para solicitar contenido seguro fuera solo para agregar reglas de lista blanca sobre mis https / http redirects:

<rule name="WhiteList - content folder" stopProcessing="true"> <match url="^content/"/> <conditions logicalGrouping="MatchAll" trackAllCaptures="false"/> <action type="None"/> </rule> <rule name="Redirect to HTTPS" stopProcessing="true"> <match url="(.*)billing/(.*)" ignoreCase="true" /> <conditions> <add input="{HTTPS}" pattern="^OFF$" /> </conditions> <action type="Redirect" url="https://{HTTP_HOST}/billing/" redirectType="SeeOther" /> </rule> <rule name="ForceNonHttps" stopProcessing="true"> <match url="(.*)billing/(.*)" ignoreCase="true" negate="true" /> <conditions> <add input="{SERVER_PORT}" pattern="^443$" /> </conditions> <action type="Redirect" redirectType="Found" url="http://{HTTP_HOST}{REQUEST_URI}" /> </rule>


Resulta que tenía puerto: ¡443 estaba vinculado a un sitio web diferente!

Las reglas de reescritura anteriores funcionan bien para http: // a https: // reescritura y viceversa, aunque podría haber formas más óptimas o simples de hacerlo.

Deje esta pregunta aquí para que los futuros viajeros la encuentren, ya que no vi muchos buenos ejemplos de https: // para http: // escenario de reescritura en la web.


Su solución funciona, pero el problema es: su segunda instrucción matar la primera instrucción para cualquier enlace no es (. ) Billing / (. ), Incluidos sus css, js e imágenes.

Puede usar esta regla https a http:

<rule name="HTTPS to HTTP redirect" stopProcessing="true"> <match url="(.*)" /> <conditions> <add input="{RequiresSSL:{R:1}}" pattern="(.+)" negate="true" /> <add input="{HTTPS}" pattern="on" ignoreCase="true" /> <add input="{REQUEST_URI}" pattern="^(.+)/.(?!aspx)" negate="true" /> </conditions> <action type="Redirect" redirectType="Found" url="http://{HTTP_HOST}/{R:1}" /> </rule>


por favor, considere en primer lugar vincular https a su sitio web para hacer que el módulo de redireccionamiento a continuación sea esencial (así que vincule su aplicación web con un certificado autofirmado o válido )

parte final en web.config para redirigir https a http :

<rewrite> <rules> <rule name="Force NonHTTPS" stopProcessing="true"> <match url="(.*)" /> <conditions> <add input="{HTTPS}" pattern="on" /> </conditions> <action type="Redirect" url="http://{HTTP_HOST}/{REQUEST_URI}" /> </rule> </rules> </rewrite>

si necesita la GUI de IIS equivalente en el módulo de reescritura, consulte la imagen a continuación

fuente: mira tech-net para más detalles y guía paso a paso.