Loop de redirecionamento com regra de reescrita no Nginx

1

Eu tenho um site estático simples no Nginx, e estou tentando implementar um redirecionamento de mysite.com/index.html para o mysite.com, então é mais amigável para o mecanismo de busca. Mas eu recebo um loop de redirecionamento. Eu escrevi esta regra:

location =  /index.html {
    rewrite ^ http://mysite.com  permanent;
}

Fazendo alguns testes, notei que, se eu redirecionar para a página 404, está tudo bem:

rewrite ^ http://mysite.com/404.html  permanent;

Este é o arquivo de configuração completo:

server {
    listen 80;
    server_name www.mysite.com;
    rewrite ^/(.*) http://mysite.com/$1 permanent;
}

server {
    listen 80;# default_server;
    listen ipaddress:80;
    server_name mysite.com;
    access_log  /var/www/mysite.com/logs/access.log;
    error_log /var/www/mysite.com/logs/error.log;

    root /var/www/mysite.com/htdocs;
    error_page 404 /404.html;
    location =  /index.html {
    rewrite ^ http://mysite.com  permanent;
}

}

    
por gere 03.11.2012 / 13:46

1 resposta

1

Você está fazendo errado.

server {
    listen 80;
    server_name www.mysite.com;
    return 301 http://mysite.com$request_uri;
}

server {
    listen 80 default_server;
    server_name mysite.com;

    access_log  /var/www/mysite.com/logs/access.log;
    error_log /var/www/mysite.com/logs/error.log;

    root /var/www/mysite.com/htdocs;
    error_page 404 /404.html;

    location / {
        try_files $uri $uri/index.html =404;
    }

    location = /index.html {
        return 301 http://mysite.com/;
    }
}
    
por 03.11.2012 / 13:59

Tags