Utilizar Reescritura de URL (UrlRewrite) en Internet Information Server 7

Si está utilizando IIS 7.0 (o 7.5), reescritura de URL es una herramienta valiosa, bien vale la pena instalar y utilizar.

Un uso común de reescritura de URL está redirigiendo a http://domain.com http://www.domain.com. Mucha gente está haciendo esto para la optimización del Search Engine (SEO) para que los buscadores sólo ven el sitio uno, en lugar de dos sitios. El objetivo es establecer un redireccionamiento 301 permanentes.

Puede descargar de reescritura de URL de http://www.iis.net/expand/URLRewrite . Para este tutorial y capturas de pantalla que usará URL Rewrite 2.0 RC1, pero todo lo que voy a cubrir también las obras de la versión 1.0 y 1.1.

Reescritura de URL funciona a nivel global, nacional o sitio web (o nivel de aplicación para el caso). Donde se aplica es realmente depende de cómo usted maneja su servidor. Cualquiera de los dos trabajan para redirigir un nombre de dominio como este.

Usted puede optar por crear las reglas mediante el Administrador IIS, o utilizando un editor de texto y la actualización de web.config directamente. Voy a mostrar tanto, comenzando con el Administrador de IIS.

Vamos a empezar. En primer lugar, abrir el Administrador de IIS y haga doble clic en la "reescritura de URL" icono.

image

A continuación, haga clic en "Añadir reglas ..." en el panel Acciones.

Aquí tendrás la opción de un asistente de opciones pocas, y con 2,0 reescritura de URL también puede crear reglas de salida. Crear una regla en blanco (reglas de entrada).

image

Dar a su gobierno un buen ambiente "Nombre". Voy a llamar a la mía "Redirigir domain.com a www".

En la sección "Uso" menú desplegable, puede elegir entre las expresiones regulares y comodines. Usar caracteres comodín si no está familiarizado con las expresiones regulares, ya que son mucho más intuitivo. Sin embargo, si más tarde necesidad de crear reglas más complejas, expresiones regulares pueden ser necesarias.

Para esta demostración comodines seleccione. Sin embargo, voy a incluir instrucciones para aquellos que quieran utilizar expresiones regulares.

Ingrese * para el "Patrón". Esto significa que cualquier cosa califica. Vamos a utilizar una condición más adelante en lugar de igualar a la URL. (De las expresiones regulares, el uso .*).

Ahora ampliar las "Condiciones" y haga click en "Agregar". En el "Agregar condición" el diálogo entre lo siguiente:

Condición de entrada: {} HTTP_HOST
Comprobar si la cadena de entrada: Coincide con el patrón
Patrón: domain.com
(Para expresiones regulares, escriba ^ domain.com $)
Ignorar mayúsculas y minúsculas: comprobado

image

Haga clic en Aceptar.

Por último, es el momento para establecer la acción.

En la sección Acción asegurarse de que el "Tipo de acción" está en volver a dirigir.

Para las "Propiedades de Acción", entre http://www.domain.com/ {R: 0}. El {R: 0} se reserva el URL existente por lo que si alguien escribió algo como http://domain.com/aboutus que mantendría la aboutus, ya que añade el www.

Asegúrese de que la "cadena de consulta de datos anexados" sigue siendo fin de poder comprobar que la parte de cadena de consulta se conserva.

Además, asegúrese de que la "redirección de tipo" se define como Permanente (301), que es lo que los motores de búsqueda como. Esto le dice a los motores de búsqueda para realizar una redirección permanente, utilice la nueva ubicación y pasar por alto la ubicación anterior.

image

Por último, aplicar la regla y la prueba!

El uso de un editor de texto

También puede crear manualmente esta regla mediante la adición de los siguientes en el archivo web.config de su sitio (o applicationHost.config si se establece esta a nivel de servidor).

En la sección <system.webServer> de su web.config, agregue el siguiente:

Los comodines

<rewrite>
    <rules>
        <rule name="Redirect domain.com to www" patternSyntax="Wildcard" stopProcessing="true">
            <match url="*" />
            <conditions>
                <add input="{HTTP_HOST}" pattern="domain.com" />
            </conditions>
            <action type="Redirect" url="http://www.domain.com/{R:0}" />
        </rule>
    </rules>
</rewrite>

Guardar y debe ser ajustado.

O, si prefiere las expresiones regulares, utilice esto en su lugar:

Expresiones regulares

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

Este es sólo el comienzo de un gran SEO, pero es un paso común y que espero que usted encuentre útil.


Las expresiones regulares son excelentes para el manejo. Com /. Net /. Org en una sola condición. Usted puede hacer esto utilizando una "condición de entrada" para ver {} HTTP_HOST con un "patrón" de:

  ^ Dominio (com | net | org). $ 
Tenga en cuenta que el ^ marca el comienzo de la trama y las marcas $ al final, cuando el uso de expresiones regulares.
Además, para manejar el mydomain2.net, asegúrese de establecer la "agrupación lógica" para adaptarse a cualquier. Esto permite que cualquiera de las reglas para hacer que la regla para que coincida con el estado y la redirección. Después de ajustar para adaptarse a cualquier, usted puede añadir tantos dominios como desee con una sola regla con varias condiciones.
Echemos un vistazo a mydomain2.com y neto.. Aquí hay un patrón que captura todas las situaciones:
  ^ (Www.) mydomain2?. (Com | net) $ 
Esto atrapa www y sin www y. Com y la red..
La siguiente figura muestra las condiciones que coger el siguiente:
  • domain.com (primera condición)
  • domain.net (primera condición)
  • www.mydomain2.com (segunda condición)
  • www.mydomain2.net (segunda condición)
  • mydomain2.com (segunda condición)
  • mydomain2.com (segunda condición)
  • www.domain.net (tercera condición)
image
Tenga en cuenta que la acción va a redirigir todos ellos al mismo lugar (www.domain.com), que era el objetivo de Rubens. Sólo asegúrese de que no coincidan con las condiciones www.domain.com o va a crear un bucle.
La configuración resultante debería tener este aspecto:
<rewrite>
    <globalRules>
        <rule name="Redirects to www.domain.com" patternSyntax="ECMAScript" stopProcessing="true">
            <match url=".*" />
            <conditions logicalGrouping="MatchAny">
                <add input="{HTTP_HOST}" pattern="^domain.*(com|net)$" />
                <add input="{HTTP_HOST}" pattern="^(www.)?mydomain2.(com|net)$" />
                <add input="{HTTP_HOST}" pattern="^www.domain.net$" />
            </conditions>
            <action type="Redirect" url="http://www.domain.com/{R:0}" />
        </rule>
    </globalRules>
</rewrite>
Usted puede hacer esto utilizando comodines demasiado. Haría falta más condiciones. También es posible hacer esto con los mapas de escribir, otra característica de reescritura de URL.

Comentarios

Añadir nuevo comentario

Plain text

  • No se permiten etiquetas HTML.
  • Las direcciones de las páginas web y las de correo se convierten en enlaces automáticamente.
  • Saltos automáticos de líneas y de párrafos.
CAPTCHA
Esta pregunta es para evitar el SPAM por medio de software.