2012-05-10 15 views

Respuesta

9

Esto es más o menos lo mismo que el buen ejemplo para http://wiki.nginx.org/Pitfalls#Server_Name. Es decir, se debe utilizar dos servidores:

server { 
    server_name b.example.com; 
    return 301 $scheme://a.example.com$request_uri; 

    # For pre-0.8.42 installations: 
    # rewrite^$scheme://a.example.com$request_uri? permanent; 
} 

server { 
    server_name a.example.com; 
    # Do stuff 
} 
+1

'server_name * .example.com;' capturará cualquier subdominio incluyendo 'www' y' porno' ™ y 'cualquier cosa', si alguien está buscando redireccionar algo al dominio principal. Para la redirección http-> https puede incluir cualquier cosa usando 'server_name .ejemplo.com' - redireccionará tanto example.com como * .example.com. –

+0

@DmitryVerhoturov cuando se utiliza '.example.com' ¿cuál es una buena manera de indicar que las variaciones como' www.' deben ser redirigidas a 'example.com'? ¿Sin usar las condiciones "si" para reducir el rendimiento? – PKHunter

+0

@PKHunter, '.example.com' es la mejor manera de cubrir' * .example.com', [aquí está el documento] (http://nginx.org/en/docs/http/server_names.html). –

0

Para hacer esto en un solo bloque de servidor, puede utilizar un if y la $server_name variable:

server_name primary.tld secondary.tld; 
    if ($host != $server_name) { 
     rewrite^$scheme://$server_name permanent; 
    } 

O, para mantener los parámetros de consulta:

server_name primary.tld secondary.tld; 
    if ($host != $server_name) { 
     rewrite ^/(.*) $scheme://$server_name/$1 permanent; 
    } 

Aquí, $server_name se refiere al nombre del servidor primario, que es el primer nombre en la directiva server_name, mientras $host se refiere a la ho stname dado en la solicitud HTTP.

Tenga en cuenta que la instrucción if en la configuración nginx no siempre hace lo que cabría esperar y algunos desaconsejan su uso. Consulte también https://www.nginx.com/resources/wiki/start/topics/depth/ifisevil/

Esta respuesta se inspiró en this answer to another question que utiliza un enfoque similar.

Cuestiones relacionadas