nginx reescrevendo localização de reescritas permanentes

1

Estou tentando redirecionar de mydomain.com para www.mydomain.com. No entanto, nginx está reescrevendo o cabeçalho de localização para $ host.

server{
    server_name mydomain.de;
    set $root /srv/www/mydomain.de;

    listen 8080;

    root $root;
    index index.html index.htm;

    location / {
            rewrite ^(.*) http://www.google.de$1 permanent;
    }

    add_header      Cache-Control   private;
}
server_tokens off;


proxy_buffering on;
proxy_buffer_size 8k;
proxy_buffers 2048 8k;

client_max_body_size 100M;
client_body_buffer_size 100M;
server_names_hash_max_size 1024;

É assim que minha configuração de servidor se parece. Mas eu não sou redirecionado para o google, mas preso em um loop de redirecionamento. Eu tenho muitas regras de reescrita em outro servidor-host (www.mydomain.de), mas eles parecem não estar relacionados como este vhost nem é usado.

Error.log é o seguinte:

2012/10/24 17:26:26 [notice] 2244#0: *175 "^(.*)" matches "/", client: 127.0.0.1, server: mydomain.de, request: "GET / HTTP/1.1", host: "mydomain.de"
2012/10/24 17:26:26 [notice] 2244#0: *175 rewritten redirect: "http://www.google.de/", client: 127.0.0.1, server: mydomain.de, request: "GET / HTTP/1.1", host: "mydomain.de"

Alguém sabe como resolver meu problema? Eu não tenho absolutamente nenhuma idéia do que está errado ... Obrigado.

Editar: Nem isso funciona:

server{
   server_name test.prod-web.hrm;
   listen 8080;

   location / {
           rewrite ^(.*) http://www.google.de$1 permanent;
   }
}
    
por Jan Thurau 24.10.2012 / 17:29

2 respostas

0

Eu não usaria rewrite para isso.

Em vez disso, tente isto:

return 301 $scheme://www.example.com$request_uri$is_args$args;

Se isso falhar, você provavelmente tem algo mais em seu ambiente que está causando o problema.

    
por 24.10.2012 / 22:42
0

Basta criar um servidor adicional para a reescrita:

   server {
      listen       192.168.1.234:80;
      server_name  example.com;                # your domain name

      rewrite ^/(.*) http://www.example.com/$1 permanent;
   }

Isso realmente deveria ser isso. Cuidado com a barra que você não tem

    
por 24.10.2012 / 22:45