Пользовательская страница перенаправления Nginx 301 не работает, но по-прежнему возвращает страницу с «nginx» - PullRequest
0 голосов
/ 27 мая 2018

Итак, нам нужно скрыть, что nginx является нашим сервером, и один из способов, которым он раскрывает себя, - это страницы ошибок.Для этого у нас есть фрагмент:

error_page 404 /404.html;
error_page 403 /403.html;
# redirect server error pages to the static page /50x.html
error_page 500 502 503 504 /500.html;

# Non-rails error pages
error_page 301 /error/301.html;
error_page 307 /error/307.html;
error_page 308 /error/308.html;
error_page 400 /error/400.html;
error_page 401 /error/401.html;
error_page 405 /error/405.html;
error_page 406 /error/406.html;
error_page 408 /error/408.html;
error_page 413 /error/413.html;
error_page 415 /error/415.html;
error_page 429 /error/429.html;
error_page 431 /error/431.html;

location ^~ /error/ {
  internal;
  root /usr/share/nginx/html;
}

, который входит в блок server {}:

server {
  listen 80;
  server_name ourhost.com
  include /etc/nginx/snippets/error_pages.conf;
  return 301 https://$server_name$request_uri;
}

Все страницы содержат только номер ошибки и сообщение без какой-либо раскрывающей информации.Однако страница 301 по-прежнему возвращает:

<html>
<head><title>301 Moved Permanently</title></head>
<body bgcolor="white">
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx</center>
</body>
</html>

, что не то, что мы хотим.Как сделать так, чтобы пользовательская страница 301 загружалась вместо nginx по умолчанию?

1 Ответ

0 голосов
/ 28 мая 2018

Ответ здесь помог: https://serverfault.com/questions/326877/nginx-error-page-directive-is-silently-ignored

Экслозирование return в location / {} решает проблему.

...