Respuestas:
nombre_servidor admite coincidencias de sufijos utilizando la sintaxis .midominio.com:
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;
}
listen
directiva por defecto es el puerto 80 cuando no se especifica. En realidad es un poco más complicado que eso en general; vea los documentos de configuración de nginx para más detalles.
?
logra el final?
rewrite
y return 301 $scheme://www.adifferentdomain.com$request_uri;
?
$request_uri
ya tiene la cadena de consulta, no es necesario agregarla nuevamente. La return 301
sintaxis es más nueva, y no debería haber diferencia en el comportamiento entre los dos métodos, pero cuando originalmente respondí esta pregunta, muchas distribuciones no tenían la versión requerida, así que elegí la sintaxis más segura.
server {
server_name .mydomain.com;
return 301 http://www.adifferentdomain.com$request_uri;
}
http://wiki.nginx.org/HttpRewriteModule#return
y
¿Por qué usar el módulo de reescritura si puedes hacerlo return
? Técnicamente hablando, return
es parte del módulo de reescritura, ya que puede leer aquí, pero este fragmento 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 puedes darle una redirección 301.
return 302 $scheme://forwarded-domain.com$request_uri;
Eso debería funcionar a través de HTTPRewriteModule .
Ejemplo reescribir de www.example.com a example.com:
server {
server_name www.example.com;
rewrite ^ http://example.com$request_uri? permanent;
}
server_name example.com www.example.com;
.
Si desea redirigir las solicitudes de "dominio1.com" a "dominio2.com", puede crear un bloque de servidor que tenga este aspecto:
server {
listen 80;
server_name domain1.com;
return 301 $scheme://domain2.com$request_uri;
}
listen 443;
Redireccionamiento temporal
rewrite ^ http://www.RedirectToThisDomain.com$request_uri? redirect;
Redireccionamiento permanente
rewrite ^ http://www.RedirectToThisDomain.com$request_uri? permanent;
En el archivo de configuración nginx para un sitio específico:
server {
server_name www.example.com;
rewrite ^ http://www.RedictToThisDomain.com$request_uri? redirect;
}
Simplemente puede escribir una condición if dentro del bloque del servidor {}:
server {
if ($host = mydomain.com) {
return 301 http://www.adifferentdomain.com;
}
}