¿Existe alguna forma clara de redirigir todos los intentos de ir a una versión HTTP: // de un sitio a su HTTPS: // equivalente?IIS7: HTTP-> HTTPS Cleanly
Respuesta
Creo que la manera más limpia es como se describe here on IIS-aid.com. Solo es web.config y si cambias de servidor no tienes que recordar todos los pasos que pasaste con la página de error 403.4 personalizada u otros permisos especiales, simplemente funciona.
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="HTTP to HTTPS redirect" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="off" ignoreCase="true" />
</conditions>
<action type="Redirect" redirectType="Found" url="https://{HTTP_HOST}/{R:1}" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
Esto funciona perfectamente, y para los puntos de bonificación es completamente autónomo, por lo que no tiene que crear un nuevo sitio web como se indica en la respuesta aceptada – WickyNilliams
Se activará para todas las URL independientemente del tipo de archivo. p.ej. Una URL directa a un archivo txt? – Cheekysoft
Esto funcionó para mí con la excepción de que tuve que modificar la URL de redireccionamiento a https: // {HTTP_HOST} {REQUEST_URI} –
Creo que con "limpiamente" te refieres con un redireccionamiento de 300. Configuración para muchos servidores & idiomas here.
Una forma limpia solo cambia el esquema de URL de http -> https y deja todo lo demás equivalente. Debe ser del lado del servidor para que no haya problemas con el navegador.
JPPinto.com tiene Step-By-Step instructions sobre cómo se hace esto, excepto que usan javascript (HttpRedirect.htm) en lugar de una redirección del lado del servidor. Por alguna razón, no pude obtener IE ejecute el javascript si tiene habilitado 'Mostrar mensajes de error HTTP amigables', que está activado por defecto. Otra cosa con el script es que la redirección a la ruta no funcionaba ni en FF ni en Chrome. La secuencia de comandos siempre redirige a la raíz. (Tal vez me he perdido algo, porque debería redirigir a la ruta).
Por estas razones, he utilizado una página ASP para la redirección. La desventaja es, por supuesto, que esto requiere que ASP clásico esté habilitado en el servidor.
OpsanBlog tiene un ASP script and instructions que funciona bien con IIS6.
He tenido algunos problemas al usar este método con IIS7. La interfaz de usuario tiene problemas principalmente, ya que IIS7 hace que sea realmente fácil perder algo.
- En primer lugar, debe instalar ASP como una función de función de servidor web .
- En segundo lugar, el uso de un directorio virtual no funcionaba como se esperaba en IIS7 y no lo hice intento de depurar esto. En su lugar, puse el archivo en la carpeta raíz del sitio y usé la url '/SSLRedirect.asp' en la página de error 403.4 para hacer referencia a ella.
- Por último, la parte más complicada, NO debe hacer cumplir SSL para SSLRedirect.asp. De lo contrario, obtendrá un error 403.4. Para hacerlo, seleccione el archivo en IIS7 'Vista de contenido' y cambie a 'Vista de funciones' para que pueda editar la configuración de SSL para el único archivo y desactivar la casilla 'Requerir SSL'.
IIS manager debería mostrar el nombre del archivo en el encabezado.
Las instrucciones vinculadas en JPPinto.com se han actualizado para resaltar que esto no funciona en IIS 7.5 o R2. Dicen que recibirá una violación de bloqueo debido a cambios en la seguridad en las versiones más nuevas de IIS. Sugieren usar el método URL Rewrite 2.0 en su lugar (enfoque similar según la respuesta de @toxaq). – AussieRob
La solución más fácil y limpia que encontré fue a
En Configuración de SSL -> SSL requerido
En las páginas de error -> Activar 403.4 de error -> redirigida a la HTTPS sitio
Páginas de error -> Editar configuración de características ...-> Establecer errores detallados de las solicitudes locales y páginas de error personalizadas para solicitud remota
La ventaja es que no requiere de líneas adicionales de código. Lo malo es que te redirige a una URL absoluta.
funciona perfectamente (en IIS 8.5/2012 R2). y sin retoques con la web.config – schmendrick
esta es una forma inteligente de resolver el problema. thx –
¿Podría dar un ejemplo de este inconveniente? ¿En qué circunstancias sucedería y por qué es algo negativo? Si pudieras agregarlo a tu respuesta, sería genial. ¡Muchas gracias! –
Global.asax
protected void Application_BeginRequest()
{
if (!Context.Request.Url.AbsoluteUri.Contains("localhost") && !Context.Request.IsSecureConnection)
Response.Redirect(Context.Request.Url.ToString().Replace("http:", "https:"));
}
Puedo evitar esta redirección colocando "localhost" en algún lugar del URI, p. Ej. la cadena de consulta http://tudominio.com?localhost=true Sugeriría verificar la propiedad Request.Url.Host en su lugar –
- 1. Reescritura de URL https: // http: // en IIS7
- 2. boost :: asio cleanly disconnecting
- 3. Cómo eliminar el certificado de Store cleanly
- 4. powershell cerrar internet explorer gracefully/cleanly
- 5. CSS Fill parent div 100% cleanly
- 6. IIS7 cacheControlMaxAge no atribuye
- 7. Powershell IIS7 Ajustar en Asignar certificado SSL a la vinculación https
- 8. Reescritura de URL de IIS7: ¿Cómo no eliminar el protocolo HTTPS de la URL reescrita?
- 9. IIS7 Profiling
- 10. Módulo SPDY para IIS7
- 11. Hosting Mercurial en IIS7
- 12. Activando net.tcp en IIS7
- 13. IIS7 Cache-Control
- 14. IIS7 Reescribir mapa Regex?
- 15. IIS7 403 - Acceso denegado
- 16. Depuración de IIS7 VB6
- 17. cómo redirigir https: // a https: // www
- 18. backbone.js https
- 19. ASIHTTPRequest - HTTPS
- 20. IIS7 Autenticación de modo mixto
- 21. IIS7 y problemas de autenticación
- 22. Permitir descargas MDB en IIS7
- 23. ¿Qué es urlCompression en IIS7?
- 24. IIS7 + PHP + HTTP POST = ¿colgar?
- 25. ASP.NET - IIS7 - IBM DB2 Issue
- 26. MVC + IIS7 = Problema de CSS
- 27. ¿Qué URL en una página https deben ser https?
- 28. UrlRewriteFilter Directo a https
- 29. autenticación HTTPS y BASIC
- 30. Autenticación IOS https
respuesta se puede encontrar en el blog de James Kovac: http://jameskovacs.com/2007/05/09/how-to-autoredirect-to-a-sslsecured-site- in-iis/ – cpuguru
Si está en IIS 7 y en R2 [aquí] (http://www.jppinto.com/2010/03/automatically-redirect-http-requests-to-https-on-iis7-using- url-rewrite-2-0 /) es una guía que funciona y es la más "limpia" –