¿Cuál es la forma óptima de eliminar el subdominio www de una url usando IIS URL Rewrite?Método adecuado para eliminar www de la dirección utilizando IIS URL Reescribir
Respuesta
Si quieres que funcione con cualquier nombre de host (no hardcoding en la regla), que te gustaría hacer algo como esto:
<rule name="Remove www" stopProcessing="true">
<match url="(.*)" ignoreCase="true" />
<conditions logicalGrouping="MatchAll">
<add input="{HTTP_HOST}" pattern="^www\.(.+)$" />
</conditions>
<action type="Redirect" url="http://{C:1}/{R:0}" appendQueryString="true" redirectType="Permanent" />
</rule>
en la acción de redirección, {C: 1} contiene el segundo grupo de captura en la condición, mientras que {R: 0} contiene lo que estaba en la regla (la ruta). appendQueryString = "true" también agregará cualquier cadena de consulta al redireccionamiento (si está presente). Sin embargo, tenga en cuenta que cualquier valor hash de la URL, si está presente, se perderá en el proceso, ya que no se transmitirán al servidor.
A continuación se debe trabajar:
<system.webServer>
<rewrite>
<rules>
<rule name="Remove WWW" stopProcessing="true">
<match url="^(.*)$" />
<conditions>
<add input="{HTTP_HOST}" pattern="^(www\.)(.*)$" />
</conditions>
<action type="Redirect" url="http://www.example.com{PATH_INFO}" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
</system.webServer>
Para hacer una redirección que funcione para HTTP y HTTPS se puede utilizar
<rewrite>
<rules>
<rule name="Lose the www" enabled="true" stopProcessing="true">
<match url="(.*)" ignoreCase="true"/>
<conditions logicalGrouping="MatchAll">
<add input="{HTTP_HOST}" pattern="^www\.(.*)$"/>
</conditions>
<action type="Redirect" redirectType="Permanent" url="{SchemeMap:{HTTPS}}://{C:1}/{R:1}" appendQueryString="true" />
</rule>
</rules>
<rewriteMaps>
<rewriteMap name="SchemeMap">
<add key="on" value="https" />
<add key="off" value="http" />
</rewriteMap>
</rewriteMaps>
</rewrite>
IIS lo hace automáticamente para usted lo siguiente:
Seleccionar sitio> reescritura de URL> nueva regla> Host canónico Nombre :)
best answer sin lugar a duda. –
- 1. Módulo de reescritura de Microsoft - Forzar www en la url O eliminar www de la url
- 2. URL Reescribir IIS 7 - url redirigir no funciona
- 3. Redirigir URL que no sea www a www usando .htaccess
- 4. PHP: Eliminar 'WWW' de la URL dentro de una Cadena
- 5. Eliminar "www", "http: //" de la cadena
- 6. ¿Cómo eliminar siempre WWW de una url con mod_rewrite?
- 7. ¿Cómo eliminar http: //, www y slash de URL en PHP?
- 8. PHP URL Reescribir
- 9. ¿Cómo redirigir con "www" URL sin URL "www" o viceversa?
- 10. Yii url avanzada reescribir
- 11. IIS 7.5 Reescribir el error? Bucle infinito
- 12. Cómo reescribir la URL en Tomcat 6
- 13. Reescribir las reglas de salida de URL IIS7
- 14. carriles - www Asegurar está en la URL
- 15. Agregar cadena de consulta a IIS Reescribir mapa
- 16. Eliminar el prefijo WWW de su sitio web
- 17. ¿Cómo escribir el método de descripción adecuado para una clase?
- 18. Reescribir en la URL fuera de la base de Wordpress
- 19. ningún método adecuado para el error tipo
- 20. Método C# para hacer la codificación URL?
- 21. WWW para no WWW redirección con PHP
- 22. Reescritura de URL de IIS7: ¿Cómo no eliminar el protocolo HTTPS de la URL reescrita?
- 23. "URL con WWW y URL sin WWW": ¿hay alguna diferencia entre ellos?
- 24. Reescribir todas las URL, excepto una
- 25. IIS 7 Petición de respuesta incorrecta cuando% 0A existe en la dirección URL
- 26. PHP Eliminar URL de la cadena
- 27. Método de Python para eliminar la iterabilidad
- 28. Cómo reescribir la URL sin actualizar, como GitHub.com
- 29. ¿Cómo redirigir las URL que no son www a www usando htaccess?
- 30. nginx reescribir
Nunca estuve encantado con el fragmento codificado en la primera respuesta, me alegro de poder finalmente marcar una respuesta a esta pregunta. –
¿Qué pasa si alguien entra en https? No desea simplemente redirigirlos automáticamente a http, ¿verdad? – jedmao
@mrjedmao ¡buen punto! Lo investigaré :) –