kot_mapku3
@kot_mapku3

Как разрешить один адрес по http в nginx?

Есть конфиг nginx, в котором прописаны пути для статических файлов и т.д.
Также, там указаны настройки для переадресации на https и с www на non-www. Яндекс, когда индексирует сайт, почему-то не может найти favicon.ico, хотя она доступна по адресу и прописана в коде страницы. Мне кажется, что дело в https, потому что робот хочет открыть страницу через http и вместо "200 ОК" получает "301 Moved permanently". Можно ли для одного единственного адреса прописать http?
UPD. Возможно также дело в том, что я удаляю последний слеш (trailing slash), но 200 ОК прилетает, так что это, наверное, маловероятно.

server {
    listen 443 ssl;
    listen [::]:443 ssl;
    server_name www.example.ru;
    return 301 https://example.ru$request_uri;

    ssl on;
    ssl_certificate /etc/letsencrypt/live/example.ru/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.ru/privkey.pem;
}

server {
	listen 80;
	listen [::]:80;
	server_name example.ru www.example.ru;
	return 301 https://example.ru$request_uri;
}

server {
    listen 443 ssl default_server;
    listen [::]:443 ssl default_server;
    server_name example.ru;

rewrite ^/(favicon.ico)/$ /$1 permanent;

    location ~ ^/(favicon.ico|favicon.ico/) {
        autoindex off;
        root /home/example/example_site/exmaple/example_project/static/images/icons/current/;
        expires 30d;
    }
}
  • Вопрос задан
  • 150 просмотров
Решения вопроса 1
KodyWiremane
@KodyWiremane
Пони, Debian, LEMP, LAN, любитель
Отвечая на вопрос в заголовке,
server {
    listen 80;
    listen [::]:80;
    server_name example.ru www.example.ru;
    location / {
        return 301 https://example.ru$request_uri;
    }
    location = /path/without/redirect {}
    # без =, если другие адреса с этим префиксом тоже не редиректить
}
Хоть и некропостинг. Вдруг поможет кому.
https://stackoverflow.com/a/27866255
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы