У меня есть простой статический веб-сайт на 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/;
}
}