Назад | Перейти на главную страницу

Цикл перенаправления с правилом перезаписи в Nginx

У меня есть простой статический веб-сайт на Nginx, и я пытаюсь реализовать перенаправление с mysite.com/index.html на mysite.com, чтобы он был более удобным для поисковых систем. Но у меня возникает петля перенаправления. Я написал это правило:

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

Проведя несколько тестов, я заметил, что если я перенаправляю на страницу 404, все в порядке:

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

Это полный файл конфигурации:

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;
}

}

Ты делаешь это неправильно.

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/;
    }
}