Cómo redireccionar un dominio diferente usando NGINX?

¿Cómo puedo redirigir mydomain.com y cualquier subdominio *.mydomain.com a www.adifferentdomain.com utilizar NGINX?

OriginalEl autor deb | 2011-05-18

6 Kommentare

  1. 218

    server_name apoya sufijo que coincide con el uso .mydomain.com sintaxis:

    server {
      server_name .mydomain.com;
      rewrite ^ http://www.adifferentdomain.com$request_uri? permanent;
    }
    

    o en cualquier versión 0.9.1 o superior:

    server {
      server_name .mydomain.com;
      return 301 http://www.adifferentdomain.com$request_uri;
    }
    
    No tengo que poner en un puerto a la escucha? por ejemplo, listen 80. Tengo varios dominios que tengo que redirigir a un dominio principal, pero mi servidor también tiene varios servidores virtuales para otros dominios.
    El listen directiva por defecto el puerto 80, cuando no se especifica. Es un poco más complicado que eso, en general; consulte el la configuración de nginx docs para más detalles.
    ¿Qué hace el ? lograr al final?
    ¿Cuál es la diferencia entre rewrite y return 301 $scheme://www.adifferentdomain.com$request_uri; ?
    El ? al final de una reescritura dice nginx no anexar el original de la cadena de consulta. Desde $request_uri ya tiene la cadena de consulta, no hay necesidad de añadirlo de nuevo. El return 301 sintaxis es más reciente, y no debería haber ninguna diferencia en el comportamiento entre los dos métodos, pero cuando originalmente respondieron a esta pregunta, muchas distribuciones no tienen la versión requerida, así que me fui con el seguro de la sintaxis.

    OriginalEl autor kolbyjack

  2. 11

    Que debe trabajar a través de HTTPRewriteModule.

    Ejemplo de reescritura de http://www.example.com a example.com:

    server {    
        server_name www.example.com;    
        rewrite ^ http://example.com$request_uri? permanent; 
    }
    
    que sólo redirigir http://www.example.com a example.com. Quiero redirigir tanto para un dominio diferente. Puedo hacer que en una regla?
    No lo sé seguro, pero creo que server_name mydomain.com; reescribir http://www.adifferentdomain.com permanente; } debe hacerlo? Que debe tomar todo *.mydomain.com?
    usted sólo tiene server_name example.com www.example.com;.
    lo que es falso
    La pregunta pide específicamente que subdominios para redirigir a una de dominio. Esta respuesta respuestas ninguno de los dos (de forma explícita).

    OriginalEl autor udo

  3. 11

    ¿Por qué utilizar el módulo de reescritura de si se puede hacer return? Técnicamente hablando, return es parte de la reescritura módulo como usted puede leer aquí pero este fragmento de código es más fácil de leer en mi humilde opinión.

    server {
        server_name  .domain.com;
    
        return 302 $scheme://forwarded-domain.com;
    }
    

    También puede darle un redireccionamiento 301.

    Será esto mantener la ruta de acceso y consulta de parámetros como así?
    Sin este ejemplo no hacer que @Marca. Pero supongo que puedes mezclar las respuestas anteriores para llegar a algo como esto: return 302 $scheme://forwarded-domain.com$request_uri;
    En una nota de lado, en muchos casos, usted debe probablemente sólo redirigir a https en lugar de preservar el régimen (es decir, un uso de https en lugar de $esquema). Esto es por las mismas razones de protocolo de los vínculos relativos son ahora consideradas como obsoletas – paulirish.com/2010/the-protocol-relative-url
    Eso no es completamente cierto. Considere el caso de tener el servidor web detrás de un loadbalancer que la descarga de ssl.

    OriginalEl autor Robin van Baalen

  4. 6

    Si quieres redirigir las solicitudes de «domain1.com» a «domain2.com» podría crear un bloque de servidor que se parece a esto:

    server {
        listen 80;
        server_name domain1.com;
        return 301 $scheme://domain2.com$request_uri;
    }
    

    OriginalEl autor ZanMax

  5. 0

    Redirección temporal

    rewrite ^ http://www.RedirectToThisDomain.com$request_uri? redirect;
    

    Redirección permanente

    rewrite ^ http://www.RedirectToThisDomain.com$request_uri? permanent;
    

    En nginx archivo de configuración para el sitio específico:

    server {    
        server_name www.example.com;
        rewrite ^ http://www.RedictToThisDomain.com$request_uri? redirect;
    
    }
    

    OriginalEl autor Taimoor Changaiz

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Recent Articles

Python «set» con duplicados/elementos repetidos

Hay una forma estándar de representar un "conjunto" que puede contener elementos duplicados. Como yo lo entiendo, un conjunto tiene exactamente un cero o...

Python: generador de expresión vs rendimiento

En Python, ¿hay alguna diferencia entre la creación de un generador de objetos a través de un generador de expresión versus el uso de...

Cómo exportar/importar la Masilla lista de sesiones?

Hay una manera de hacer esto? O tengo que tomar manualmente cada archivo de Registro? InformationsquelleAutor s.webbandit | 2012-10-23

no distingue mayúsculas de minúsculas coincidentes en xpath?

Por ejemplo, para el xml a continuación <CATALOG> <CD title="Empire Burlesque"/> <CD title="empire burlesque"/> <CD...