usar instalar for como iis url-rewriting web-config

instalar - url rewrite iis install iis 8



web.config redirigir no www a www (4)

Necesito redirigir URL que no sean www a www url para direcciones URL http y https. Intenté seguir las reglas en web.config.

<rule name="Redirect to WWW" stopProcessing="true"> <match url=".*" /> <conditions> <add input="{HTTP_HOST}" pattern="^domain.com$" /> </conditions> <action type="Redirect" url="http://www.domain.com/{R:0}" redirectType="Permanent" />

<rule name="Redirect to WWW https" stopProcessing="true"> <match url=".*" /> <conditions> <add input="{HTTPS}" pattern="^domain.com$" /> </conditions> <action type="Redirect" url="https://www.domain.com/{R:0}" redirectType="Permanent" />

Funciona perfectamente para url no ssl pero en caso de ssl lo redirige de https://domain.com a http://www.domain.com

Por favor, ayúdame a corregir mis reglas.


Otras respuestas aquí son innecesarias, esta es la regla que uso (solo copie y pegue):

<rule name="ensurewww" stopProcessing="true"> <match url=".*" /> <conditions> <add input="{CACHE_URL}" pattern="^(.+)://(?!www)(.*)" /> </conditions> <action type="Redirect" url="{C:1}://www.{C:2}" redirectType="Permanent" /> </rule>

Esto redirigirá a la versión www mientras preserva el protocolo HTTP y HTTPS

Espero que esto ayude.


Para una regla más segura que funcione tanto para las situaciones Match Any como Match All , puede usar la solución Rewrite Map. Es una solución perfectamente buena, con el único inconveniente es el esfuerzo adicional muy leve para configurarlo, ya que es necesario crear un mapa de reescritura antes de crear la regla. En otras palabras, si elige usar esto como su único método para manejar el protocolo, estará a salvo.

Puede crear un Rewrite Map llamado MapProtocol , puede usar {MapProtocol:{HTTPS}} para el protocolo dentro de cualquier acción de regla.

<rewrite> <rules> <rule name="Redirect to www" stopProcessing="true"> <match url="(.*)" /> <conditions trackAllCaptures="false"> <add input="{HTTP_HOST}" pattern="^domain.com$" /> </conditions> <action type="Redirect" url="{MapProtocol:{HTTPS}}://www.domain.com/{R:1}" /> </rule> </rules> <rewriteMaps> <rewriteMap name="MapProtocol"> <add key="on" value="https" /> <add key="off" value="http" /> </rewriteMap> </rewriteMaps> </rewrite>

Reference


Sé que esta es una publicación anterior, pero no está completamente respondida. Terminé extendiendo la respuesta de Satpals

La primera regla detecta http + www y la segunda captura no-www

Por alguna razón, no pude usar MapProtocol en la primera regla, pero funciona con https escritos directamente en la url.

<rewrite> <rules> <rule name="Special case www &amp; HTTPS off" enabled="true" stopProcessing="true"> <match url="(.*)" /> <conditions logicalGrouping="MatchAll" trackAllCaptures="false"> <add input="{HTTP_HOST}" pattern="^www/.example/.com$" /> <add input="{HTTPS}" pattern="off" /> </conditions> <action type="Redirect" url="https://www.example.com/{R:1}" redirectType="SeeOther" /> </rule> <rule name="Redirect to www &amp; HTTPS" enabled="true" stopProcessing="true"> <match url="(.*)" /> <conditions trackAllCaptures="false"> <add input="{HTTP_HOST}" pattern="^example/.com$" /> </conditions> <action type="Redirect" url="{MapProtocol:{HTTPS}}://www.example.com/{R:1}" redirectType="SeeOther" /> </rule> </rules> <rewriteMaps> <rewriteMap name="MapProtocol"> <add key="on" value="https" /> <add key="off" value="http" /> </rewriteMap> </rewriteMaps> </rewrite>


¡Desde 2018, considere usar https (SSL) cada vez!

Entonces utilizo la redirección a www y a https juntos.

<rule name="Redirect to www" stopProcessing="true"> <match url="(.*)" /> <conditions trackAllCaptures="false"> <add input="{HTTP_HOST}" pattern="^domain.com$" /> </conditions> <action type="Redirect" url="https://www.comain.com/{R:1}" redirectType="Permanent" /> </rule> <rule name="HTTP/S to HTTPS Redirect" enabled="true" stopProcessing="true"> <match url="(.*)" /> <conditions logicalGrouping="MatchAny"> <add input="{SERVER_PORT_SECURE}" pattern="^0$" /> </conditions> <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Permanent" /> </rule>

más información aquí: https://forums.realmacsoftware.com/t/effective-july-2018-google-s-chrome-browser-will-mark-non-https-sites-as-not-secure/18597